Overview
Customer management includes:- Centralized customer records
- Customer profiles with metadata
- Team customer accounts (multi-member)
- Customer anonymization for GDPR compliance
- External ID mapping for integration
Customers are automatically created when someone makes a purchase, but you can also create them manually via the API.
Customer Types
Polar supports two customer types:Individual
Single person customers (default)
Team
Multi-member business accounts with seat management
Creating Customers
Manual Creation
Create customers manually via the dashboard or API:Automatic Creation
Customers are automatically created during:- Checkout completion
- Subscription signup
- First purchase
Customer Properties
Core Fields
Customer Object
Email Verification
email_verified: Indicates if the customer’s email has been verified- Automatically set to
truefor customers who complete checkout - Set to
falsewhen email is updated
Billing Address
Customer billing addresses are used for:- Tax calculation
- Invoice generation
- Compliance requirements
External IDs
Map Polar customers to your own system:Customer with External ID
External ID Rules
- Must be unique within your organization
- Can be set once and cannot be changed (immutable)
- Useful for syncing with CRM, databases, or other systems
Query by External ID
External IDs are preserved during anonymization for legal/tax record-keeping.
Customer Metadata
Attach custom metadata to customers:- Searched and filtered via API
- Included in webhooks
- Used for segmentation and reporting
Querying by Metadata
Team Customers
Team customers support multiple members:Owner Member
Every team customer has an owner:Team Customer with Owner
Adding Members
Add team members for seat-based subscriptions:Customer Search
Search customers by:- Email (case-insensitive)
- Name
- External ID
- Metadata
Updating Customers
Update customer information:Update Restrictions
- ✅ Email: Can update (resets
email_verified) - ✅ Name: Can update anytime
- ✅ Billing Address: Can update but not remove
- ❌ External ID: Cannot change once set
- ❌ Type: Cannot downgrade from
teamtoindividual
Customer Deletion
Delete customers from your organization:Deletion Behavior
- Subscriptions Canceled: All active subscriptions are canceled
- Benefits Revoked: Access to all benefits is removed
- Soft Delete: Customer is marked as deleted but data is retained
- Optional Anonymization: PII can be anonymized for GDPR compliance
GDPR Anonymization
Anonymize customer data for GDPR compliance:What Gets Anonymized
- ✅ Email →
[email protected] - ✅ Name →
[deleted](for individuals without tax_id) - ✅ Billing Name →
[deleted] - ✅ Billing Address → Removed
- ✅ OAuth Tokens → Cleared
- ❌ External ID → Preserved (legal/tax requirement)
- ❌ Tax ID → Preserved (legal/tax requirement)
- ❌ Business Name → Preserved (if tax_id exists)
Idempotent: Calling anonymize multiple times is safe and returns success without making changes.
Why Some Data is Preserved
Polar preserves certain data for legal compliance:- Tax IDs: Required for tax authority audits
- External IDs: Needed for financial record reconciliation
- Business Names: Required for business entities (those with tax_id)
- Order History: Financial records must be retained
Customer State
Get a comprehensive view of a customer’s current state:Customer State
Customer state is cached for performance. It refreshes automatically when subscriptions or benefits change.
Webhooks
Customer-related webhook events:customer.created: New customer createdcustomer.updated: Customer information changedcustomer.deleted: Customer deleted/anonymizedcustomer.state_changed: Subscriptions, benefits, or meters changed
customer.state_changed Event
Best Practices
Use External IDs
Map Polar customers to your system for seamless integration
Enrich with Metadata
Add context about customer source, segment, and attributes
Verify Emails
Ensure email addresses are valid before important communications
Keep Addresses Current
Update billing addresses to ensure accurate tax calculation
Sorting and Pagination
Sort customer lists by:- Created date (default)
- Name