Billing Troubleshooting
Resolve payment failures, subscription issues, and invoice problems
Billing Troubleshooting Guide
Solutions for payment, subscription, and invoice-related issues with OpenClaw.
Payment Failed
Symptoms
- Subscription status shows "past_due"
- Email notification about failed payment
- Bots continue working but at risk of suspension
- Can't create new bots
Diagnostic Steps
Check Subscription Status
const billing = await fetch('/api/billing', {
credentials: 'include'
}).then(r => r.json());
console.log('Status:', billing.subscription.status);
console.log('Period end:', billing.subscription.currentPeriodEnd);
console.log('Cancel scheduled:', billing.subscription.cancelAtPeriodEnd);
Review Polar.sh Dashboard
- Log into polar.sh with subscription email
- Navigate to Billing > Payment Methods
- Check payment method status
- Review failed payment attempts
Common Causes & Solutions
Cause: Card Expired
Solution:
- Log into Polar.sh dashboard
- Navigate to Billing > Payment Methods
- Add new payment method
- Set as default
- Remove expired card
- Payment retries automatically within 24 hours
Cause: Insufficient Funds
Solution:
- Ensure sufficient balance in account
- Payment automatically retried by Polar.sh
- Or manually update payment method
- Contact bank if card blocked
Cause: Card Declined by Bank
Solution:
- Contact bank to authorize charge
- Common reasons: fraud protection, international transaction block
- Whitelist "Polar.sh" with bank
- Try alternative payment method
Cause: Billing Address Mismatch
Solution:
- Verify billing address matches card
- Update address in Polar.sh dashboard
- Retry payment manually
Grace period: 3 days after payment failure. After that, subscription suspended and bots stopped.
Manual Payment Retry
After fixing payment method:
// Subscription automatically retries payment
// Or create new checkout for same tier
const response = await fetch('/api/billing/checkout', {
method: 'POST',
credentials: 'include',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ tier: 'pro' }) // Your current tier
});
const { checkoutUrl } = await response.json();
window.location.href = checkoutUrl;
Can't Subscribe
Symptoms
- Checkout fails with error
- "Email verification required" message
- Payment processed but no subscription created
- Redirect loop on checkout page
Diagnostic Steps
1. Check Email Verification
// Verify email status
const user = await fetch('/api/user/profile', {
credentials: 'include'
}).then(r => r.json());
if (!user.emailVerified) {
console.error('Email verification required');
}
2. Check Browser Console
Open browser DevTools > Console:
- Look for CORS errors
- Check for failed API requests
- Verify no JavaScript errors
3. Test Different Payment Method
Try alternative payment:
- Different credit card
- Different browser
- Different device/network
Common Causes & Solutions
Cause: Email Not Verified
Error: "Email verification required before subscribing"
Solution:
- Check inbox for verification email
- Click verification link
- Check spam folder if not found
- Request new verification email in Portal settings
- Retry subscription after verification
Cause: Polar.sh Account Issue
Solution:
- Clear browser cache and cookies
- Log out of Polar.sh and OpenClaw
- Log back in to OpenClaw
- Retry checkout
- Contact support if persists
Cause: Payment Method Rejected
Solution:
- Try different card
- Use alternative payment (Apple Pay, Google Pay)
- Contact card issuer to authorize
- Try incognito/private browsing mode
Cause: Regional Restrictions
Some payment methods unavailable in certain regions.
Solution:
- Check Polar.sh supported countries
- Use international credit card
- Contact support for alternative payment options
Subscription Not Active After Payment
Symptoms
- Payment successful (receipt received)
- Dashboard shows "no subscription"
- Can't create bots
- Bots show "subscription required" error
Diagnostic Steps
Check Subscription Status
const billing = await fetch('/api/billing', {
credentials: 'include'
}).then(r => r.json());
if (!billing.hasSubscription) {
console.log('No active subscription found');
console.log('Check webhook processing or contact support');
}
Check Invoice History
const invoices = await fetch('/api/billing/invoices', {
credentials: 'include'
}).then(r => r.json());
const recent = invoices.invoices[0];
console.log('Latest invoice:', recent);
console.log('Status:', recent.status);
Common Causes & Solutions
Cause: Webhook Processing Delay
Payment successful but webhook not yet processed.
Solution:
- Wait 5-10 minutes for webhook processing
- Refresh Portal dashboard
- Log out and back in
- Contact support if not resolved in 1 hour
Cause: Webhook Delivery Failed
Polar.sh couldn't deliver webhook to OpenClaw.
Solution:
- Contact support with payment receipt
- Include transaction ID from email
- Support manually activates subscription
- Usually resolved within 4 hours
Cause: Email Mismatch
Paid with different email than OpenClaw account.
Solution:
- Verify email used for payment
- Log into OpenClaw with matching email
- Or contact support to link subscription
- Provide both emails and transaction ID
Can't Upgrade or Downgrade
Symptoms
- Checkout fails when changing tier
- "Already subscribed" error
- Payment processed but tier unchanged
- Can't access upgrade options
Diagnostic Steps
Check Current Tier
const billing = await fetch('/api/billing', {
credentials: 'include'
}).then(r => r.json());
console.log('Current tier:', billing.subscription.tier);
console.log('Can upgrade:', billing.subscription.status === 'active');
Solutions
To Upgrade
// Create checkout for higher tier
const response = await fetch('/api/billing/checkout', {
method: 'POST',
credentials: 'include',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ tier: 'ultra' }) // Target tier
});
const { checkoutUrl } = await response.json();
window.location.href = checkoutUrl;
To Downgrade
Process:
- Cancel current subscription
- Wait for current period to end
- Subscribe to lower tier
// Step 1: Cancel current
await fetch('/api/billing/cancel', {
method: 'POST',
credentials: 'include'
});
// Step 2: After period ends, subscribe to new tier
// (Do this after currentPeriodEnd date)
Upgrades: Immediate effect with prorated charge. Downgrades: Take effect at next billing cycle.
Invoice Issues
Symptoms
- Can't download invoice PDF
- Invoice missing from list
- Wrong amount on invoice
- Tax calculation incorrect
Diagnostic Steps
List All Invoices
const response = await fetch('/api/billing/invoices', {
credentials: 'include'
});
const { invoices } = await response.json();
invoices.forEach(inv => {
console.log(`${inv.id}: $${inv.amount/100} - ${inv.status}`);
console.log(`PDF: ${inv.pdfUrl}`);
});
Common Causes & Solutions
Cause: PDF Generation Pending
Recent invoice (under 1 hour old) PDF not ready.
Solution:
- Wait 1-2 hours for PDF generation
- Refresh invoice list
- Contact support if not available after 24 hours
Cause: Invoice Not Synced
Invoice exists in Polar.sh but not showing in OpenClaw.
Solution:
- Log into Polar.sh dashboard directly
- Download invoice from Polar.sh
- Contact OpenClaw support to sync invoices
- Provide transaction ID
Cause: Wrong Amount or Tax
Solution:
- Verify billing address correct (affects tax)
- Check for prorated charges (mid-cycle changes)
- Review Polar.sh invoice for breakdown
- Contact support with specific invoice ID if disputed
Cause: Missing Invoices
Solution:
- Check date range filter in API call
- Verify payment actually completed
- Check spam folder for receipt emails
- Contact support with payment confirmation
Cancellation Issues
Symptoms
- Cancellation request not processed
- Subscription still active after cancellation
- Charged after cancellation
- Can't reactivate cancelled subscription
Diagnostic Steps
Check Cancellation Status
const billing = await fetch('/api/billing', {
credentials: 'include'
}).then(r => r.json());
console.log('Cancel at period end:', billing.subscription.cancelAtPeriodEnd);
console.log('Period ends:', billing.subscription.currentPeriodEnd);
console.log('Status:', billing.subscription.status);
Common Causes & Solutions
Cause: Cancellation Pending
Cancelled but period hasn't ended yet.
Solution:
- This is expected behavior
- Subscription active until period end
- Bots continue working until then
- No refund for remaining time
Cause: Charged After Cancellation
Solution:
- Verify cancellation was before billing date
- Check cancelAtPeriodEnd was true
- Contact support with invoice if incorrectly charged
- Include cancellation confirmation
Cause: Want to Reactivate
After cancelling, want to continue.
Solution:
- If before period end: Contact support to undo cancellation
- If after period end: Create new subscription via checkout
- Bot data preserved for 30 days after expiration
Refund Requests
Symptoms
- Want refund for subscription
- Charged incorrectly
- Service not working as expected
Policy
- No refunds for partial month usage
- Pro-rated refunds for billing errors only
- Full refund if charged after cancellation
- 7-day money-back guarantee for new subscribers
Process
-
Email support@openclaw.ai with:
- Invoice ID
- Reason for refund
- Account email
- Transaction date
-
Wait 3-5 business days for review
-
Refund processed (if approved):
- Via original payment method
- Takes 5-10 business days to appear
- Email confirmation sent
Refund requests must be submitted within 30 days of charge. After 30 days, no refunds granted.
Tax and Compliance Issues
Symptoms
- Wrong VAT applied
- Need VAT exemption
- Tax certificate required
- Sales tax calculation incorrect
Solutions
VAT Exemption (EU Business)
- Log into Polar.sh dashboard
- Navigate to Billing > Tax Settings
- Enter VAT ID
- Polar.sh validates with VIES
- Future invoices exclude VAT
Tax Certificate
- Download invoice PDF (includes tax breakdown)
- Request additional tax forms from support
- Available documents:
- Tax invoice
- Payment confirmation
- Service description
Wrong Tax Rate
Solution:
- Verify billing address accurate
- Update address in Polar.sh
- Contact support to correct past invoices
- Future charges use correct rate
Common Error Messages
Billing API Errors
| Error | Cause | Solution |
|---|---|---|
| "Unauthorized" | Not logged in | Log into Portal |
| "Email verification required" | Email not verified | Check inbox, verify email |
| "Invalid tier" | Tier name typo | Use 'basic', 'pro', or 'ultra' |
| "No active subscription" | Subscription expired | Subscribe to plan |
| "Failed to create checkout" | Polar.sh unavailable | Wait and retry, or contact support |
| "Payment method required" | No card on file | Add payment method in Polar.sh |
Payment Errors
| Error | Cause | Solution |
|---|---|---|
| "Card declined" | Bank rejected | Contact bank, try different card |
| "Insufficient funds" | Not enough balance | Add funds, use different card |
| "Invalid card number" | Card number wrong | Verify card details |
| "Expired card" | Card past expiration | Use valid card |
| "Security code invalid" | CVV wrong | Check card CVV code |
Emergency Billing Support
Critical Issues
Contact support immediately if:
- Charged multiple times for same period
- Can't access account after payment
- Subscription cancelled without authorization
- Security concern with payment data
Emergency Contact:
- Email: billing@openclaw.ai
- Subject: "URGENT BILLING ISSUE"
- Include: Invoice ID, transaction ID, account email
Response Times:
- Critical billing issues: under 4 hours
- Standard billing support: 24 hours
- Invoice/receipt requests: 48 hours
Prevention Best Practices
Payment Management
- Keep payment method current
- Set calendar reminder before card expiration
- Add backup payment method
- Enable billing email notifications
Monitoring
- Review monthly invoices
- Check subscription status monthly
- Monitor quota to avoid unexpected upgrades
- Keep billing address updated
Documentation
- Save invoice PDFs for accounting
- Keep payment confirmations
- Document any billing disputes
- Track subscription changes
FAQ
Q: When am I charged? A: Monthly on subscription start date (e.g., subscribed Jan 15 = charged 15th each month).
Q: Can I get refund for unused time? A: No, subscriptions billed monthly with no partial refunds.
Q: What happens if payment fails? A: 3-day grace period, then subscription suspended and bots stopped.
Q: Can I change billing date? A: No, billing date fixed to subscription start date.
Q: Do you offer annual billing? A: Not currently. Contact support for enterprise annual contracts.
Q: What payment methods accepted? A: All major credit cards via Polar.sh. Additional methods vary by region.
Q: Is billing information secure? A: Yes, Polar.sh handles all payment processing (PCI compliant).
Q: Can I get invoice emailed automatically? A: Yes, Polar.sh emails invoice on successful payment.