Billing & Subscriptions
Manage your pxlpeak billing, subscriptions, and payment methods.
Pricing Plans
pxlpeak offers flexible plans for teams of all sizes:
| Plan | Price | Events/Month | Sites | Team Members | Retention | |------|-------|--------------|-------|--------------|-----------| | Free | $0 | 10,000 | 1 | 1 | 30 days | | Starter | $29/mo | 100,000 | 3 | 3 | 6 months | | Professional | $99/mo | 1,000,000 | 10 | 10 | 2 years | | Business | $299/mo | 10,000,000 | 50 | 25 | 2 years | | Enterprise | Custom | Unlimited | Unlimited | Unlimited | Custom |
Annual billing: Save 20% with annual plans paid upfront.
Plan Features
Free Plan
- Basic analytics dashboard
- Standard reports
- 7-day attribution window
- Community support
- pxlpeak branding
Starter Plan
Everything in Free, plus:
- Custom dashboards
- Goal tracking
- Email support
- 30-day attribution window
- Remove pxlpeak branding
Professional Plan
Everything in Starter, plus:
- Advanced attribution models
- Funnel analysis
- A/B test analysis
- Custom segments
- API access (50 req/sec)
- Priority support
- 90-day attribution window
Business Plan
Everything in Professional, plus:
- Data-driven attribution
- Predictive analytics
- Custom integrations
- SSO (SAML/OIDC)
- Dedicated support
- API access (200 req/sec)
- SLA guarantee
Enterprise Plan
Everything in Business, plus:
- Unlimited everything
- Custom data retention
- On-premise deployment option
- Custom SLA
- Dedicated success manager
- Training and onboarding
- Custom feature development
Managing Your Subscription
Viewing Current Plan
// Get subscription details
const subscription = await pxlpeak.billing.getSubscription({
workspaceId: 'ws_xxx'
});
// Response:
{
plan: 'professional',
status: 'active',
currentPeriod: {
start: '2026-01-01',
end: '2026-01-31'
},
usage: {
events: 450000,
eventsLimit: 1000000,
percentUsed: 45
},
features: {
sites: { used: 5, limit: 10 },
members: { used: 7, limit: 10 },
apiRateLimit: 50
},
billingCycle: 'monthly',
nextBillingDate: '2026-02-01',
amount: 9900 // cents
}Upgrading Plans
// Preview upgrade
const preview = await pxlpeak.billing.previewUpgrade({
workspaceId: 'ws_xxx',
newPlan: 'business'
});
// {
// currentPlan: 'professional',
// newPlan: 'business',
// proratedAmount: 15000, // cents
// effectiveDate: '2026-01-12',
// newMonthlyAmount: 29900
// }
// Confirm upgrade
await pxlpeak.billing.upgrade({
workspaceId: 'ws_xxx',
newPlan: 'business',
billingCycle: 'annual' // Optional: switch to annual
});Downgrading Plans
// Preview downgrade
const preview = await pxlpeak.billing.previewDowngrade({
workspaceId: 'ws_xxx',
newPlan: 'starter'
});
// {
// currentPlan: 'professional',
// newPlan: 'starter',
// effectiveDate: '2026-02-01', // End of current period
// featuresToLose: ['advanced_attribution', 'funnel_analysis', 'api_access'],
// dataRetentionChange: { from: '2 years', to: '6 months' },
// sitesOverLimit: 2, // Need to archive 2 sites
// membersOverLimit: 4 // Need to remove 4 members
// }
// Confirm downgrade (takes effect at period end)
await pxlpeak.billing.downgrade({
workspaceId: 'ws_xxx',
newPlan: 'starter',
acknowledgeLimits: true
});Canceling Subscription
// Cancel subscription
await pxlpeak.billing.cancel({
workspaceId: 'ws_xxx',
reason: 'switching_to_competitor', // Optional feedback
feedback: 'Missing feature X'
});
// Subscription remains active until period end
// Then downgrades to Free planReactivating Subscription
// Reactivate canceled subscription
await pxlpeak.billing.reactivate({
workspaceId: 'ws_xxx'
});
// Works during grace period after cancellationUsage-Based Billing
Event Counting
Events are counted based on your plan:
Event Types Counted:
├── page_view (1 event)
├── custom_event (1 event)
├── conversion (1 event)
├── identify (1 event per unique user/day)
└── batch_events (N events)
Not Counted:
├── API read requests
├── Dashboard views
└── Report generationUsage Monitoring
// Get current usage
const usage = await pxlpeak.billing.getUsage({
workspaceId: 'ws_xxx'
});
// {
// period: { start: '2026-01-01', end: '2026-01-31' },
// events: {
// total: 750000,
// limit: 1000000,
// percentUsed: 75,
// projectedTotal: 1125000,
// projectedOverage: 125000
// },
// daily: [
// { date: '2026-01-01', events: 28000 },
// { date: '2026-01-02', events: 32000 },
// // ...
// ],
// bySite: [
// { siteId: 'site_xxx', name: 'Main Website', events: 500000 },
// { siteId: 'site_yyy', name: 'Mobile App', events: 250000 }
// ]
// }Overage Handling
When you exceed your plan's event limit:
| Plan | Overage Policy | |------|----------------| | Free | Events dropped after limit | | Starter | $0.0003/event overage | | Professional | $0.0002/event overage | | Business | $0.0001/event overage | | Enterprise | Custom pricing |
// Set overage preferences
await pxlpeak.billing.setOveragePreferences({
workspaceId: 'ws_xxx',
allowOverage: true,
overageLimit: 500000, // Max overage events
alertThresholds: [80, 90, 100], // Percent of limit
alertEmails: ['billing@company.com']
});Usage Alerts
// Configure usage alerts
await pxlpeak.alerts.create({
workspaceId: 'ws_xxx',
name: 'Usage Alert',
type: 'usage',
conditions: {
metric: 'events',
threshold: 80, // percent
operator: 'gte'
},
notifications: {
email: ['team@company.com'],
slack: 'https://hooks.slack.com/...'
}
});Payment Methods
Adding Payment Method
// Add credit card (via Stripe Elements in dashboard)
// API for server-side token creation
const paymentMethod = await pxlpeak.billing.addPaymentMethod({
workspaceId: 'ws_xxx',
type: 'card',
token: 'tok_xxx' // From Stripe.js
});
// Add bank account (ACH)
const bankAccount = await pxlpeak.billing.addPaymentMethod({
workspaceId: 'ws_xxx',
type: 'us_bank_account',
token: 'btok_xxx'
});Managing Payment Methods
// List payment methods
const methods = await pxlpeak.billing.listPaymentMethods({
workspaceId: 'ws_xxx'
});
// [
// {
// id: 'pm_xxx',
// type: 'card',
// brand: 'visa',
// last4: '4242',
// expMonth: 12,
// expYear: 2027,
// isDefault: true
// }
// ]
// Set default payment method
await pxlpeak.billing.setDefaultPaymentMethod({
workspaceId: 'ws_xxx',
paymentMethodId: 'pm_yyy'
});
// Remove payment method
await pxlpeak.billing.removePaymentMethod({
workspaceId: 'ws_xxx',
paymentMethodId: 'pm_xxx'
});Billing Information
// Update billing details
await pxlpeak.billing.updateBillingInfo({
workspaceId: 'ws_xxx',
billingEmail: 'billing@company.com',
companyName: 'Acme Corporation',
address: {
line1: '123 Main St',
line2: 'Suite 400',
city: 'San Francisco',
state: 'CA',
postalCode: '94102',
country: 'US'
},
taxId: {
type: 'us_ein',
value: '12-3456789'
}
});Invoices & History
Viewing Invoices
// List invoices
const invoices = await pxlpeak.billing.listInvoices({
workspaceId: 'ws_xxx',
limit: 12
});
// [
// {
// id: 'inv_xxx',
// number: 'INV-2026-0001',
// date: '2026-01-01',
// dueDate: '2026-01-15',
// status: 'paid',
// amount: 9900,
// currency: 'usd',
// items: [
// {
// description: 'Professional Plan (Monthly)',
// amount: 9900
// }
// ],
// pdfUrl: 'https://invoices.pxlpeak.com/inv_xxx.pdf'
// }
// ]
// Get specific invoice
const invoice = await pxlpeak.billing.getInvoice({
workspaceId: 'ws_xxx',
invoiceId: 'inv_xxx'
});
// Download invoice PDF
const pdf = await pxlpeak.billing.downloadInvoice({
workspaceId: 'ws_xxx',
invoiceId: 'inv_xxx'
});Invoice Settings
// Configure invoice settings
await pxlpeak.billing.updateInvoiceSettings({
workspaceId: 'ws_xxx',
settings: {
autoCharge: true,
invoicePrefix: 'ACME',
footer: 'Thank you for your business',
cc: ['accounting@company.com'],
language: 'en',
memo: 'PO#12345'
}
});Credits & Discounts
Applying Promo Codes
// Apply promo code
await pxlpeak.billing.applyPromoCode({
workspaceId: 'ws_xxx',
code: 'SAVE20'
});
// {
// code: 'SAVE20',
// discount: {
// type: 'percent',
// value: 20,
// duration: 3, // months
// appliesTo: 'subscription'
// }
// }Account Credits
// View credit balance
const credits = await pxlpeak.billing.getCredits({
workspaceId: 'ws_xxx'
});
// {
// balance: 5000, // cents
// transactions: [
// {
// id: 'cred_xxx',
// amount: 5000,
// reason: 'Referral bonus',
// expiresAt: '2026-06-30'
// }
// ]
// }
// Credits are automatically applied to invoicesEnterprise Billing
Custom Contracts
Enterprise customers receive:
- Custom pricing based on volume
- Annual contracts with quarterly billing option
- Net 30/60/90 payment terms
- Custom SLA with uptime guarantees
- Dedicated invoice handling
Volume Commitments
// Enterprise volume commitment
{
type: 'enterprise',
commitment: {
eventsPerMonth: 100000000,
sites: 'unlimited',
members: 'unlimited',
term: 12, // months
pricePerMonth: 2500000 // cents
},
overage: {
rate: 0.00005, // per event
cap: 500000 // max overage charge
},
sla: {
uptime: 99.99,
supportResponse: '1 hour',
dedicatedSupport: true
}
}Purchase Orders
// Submit PO for invoice
await pxlpeak.billing.submitPurchaseOrder({
workspaceId: 'ws_xxx',
poNumber: 'PO-2026-001',
amount: 2999900, // cents
validUntil: '2026-12-31',
contact: {
name: 'John Smith',
email: 'john@company.com',
phone: '+1-555-123-4567'
}
});Billing API Reference
Get Subscription
GET /v1/workspaces/{workspace_id}/billing/subscriptionUpdate Subscription
PATCH /v1/workspaces/{workspace_id}/billing/subscriptionGet Usage
GET /v1/workspaces/{workspace_id}/billing/usageList Payment Methods
GET /v1/workspaces/{workspace_id}/billing/payment-methodsAdd Payment Method
POST /v1/workspaces/{workspace_id}/billing/payment-methodsList Invoices
GET /v1/workspaces/{workspace_id}/billing/invoicesDownload Invoice
GET /v1/workspaces/{workspace_id}/billing/invoices/{invoice_id}/pdfFAQ
When am I charged?
- Monthly plans: Charged on the same date each month
- Annual plans: Charged annually on subscription start date
- Overages: Added to next invoice
What happens if payment fails?
- First retry: 3 days after failure
- Second retry: 5 days after failure
- Third retry: 7 days after failure
- Account suspended: 10 days after failure
- Data retained for 30 days, then deleted
Can I get a refund?
- Monthly plans: No refunds for partial months
- Annual plans: Pro-rated refund within first 30 days
- Overages: Non-refundable
How do I change billing email?
Go to Settings > Billing > Billing Information or use the API.
Do you offer non-profit discounts?
Yes, 50% off for registered non-profits. Contact sales with proof of status.
Is there a free trial?
All paid plans include a 14-day free trial. No credit card required.
Contact Billing Support
- Email: billing@pxlpeak.com
- Phone: +1-888-PXL-PEAK (Enterprise only)
- Dashboard: Settings > Billing > Contact Support
Next: See Quick Start to begin tracking your first data.