Pricing Management
The Pricing Management module handles pricing templates and configurations within PulseCRM.
Overview
This module provides:
- Pricing template management
- Fee structure configuration
- Pricing model customization
- Revenue sharing
- Cost management
Core Components
Key Tables
pricingTemplate
Primary table for pricing configurations:
- id: Primary key
- name: Template name
- description: Template description
- structure: Fee structure
- status: Template status
- created_at: Creation timestamp
- updated_at: Last update timestamp
Features
Template Management
- Template creation
- Structure definition
- Rule configuration
- Version control
- Status tracking
Fee Structures
- Transaction fees
- Monthly fees
- Service fees
- Equipment fees
- Special charges
Revenue Sharing
- Split configurations
- Override settings
- Bonus structures
- Commission rates
- Payout rules
API Endpoints
Template Management
Create Template
POST /api/pricing/templates
Request body:
{
"name": "string",
"description": "string",
"structure": {
"transactionFees": {
"percentage": "number",
"flatRate": "number",
"minimumFee": "number"
},
"monthlyFees": [{
"name": "string",
"amount": "number",
"frequency": "string"
}],
"serviceFees": [{
"service": "string",
"rate": "number",
"type": "percentage" | "flat"
}]
},
"status": "active" | "draft" | "archived"
}
List Templates
GET /api/pricing/templates
Query Parameters:
status: Filter by statustype: Filter by template typesearch: Search templates
Fee Management
Update Fees
PUT /api/pricing/templates/{templateId}/fees
Update fee structure:
{
"transactionFees": {
"percentage": "number",
"flatRate": "number"
},
"monthlyFees": [{
"name": "string",
"amount": "number"
}]
}
Fee Types
Transaction Fees
interface TransactionFee {
percentage: number;
flatRate: number;
minimumFee?: number;
maximumFee?: number;
perTransaction?: number;
}
Monthly Fees
interface MonthlyFee {
name: string;
amount: number;
frequency: 'monthly' | 'quarterly' | 'annually';
optional: boolean;
conditions?: object;
}
Service Fees
interface ServiceFee {
service: string;
rate: number;
type: 'percentage' | 'flat';
frequency: string;
conditions: object;
}
Revenue Sharing
Split Configuration
interface RevenueSplit {
entity: string;
percentage: number;
minimumAmount?: number;
maximumAmount?: number;
conditions?: object;
}
Override Settings
interface Override {
level: string;
rate: number;
basis: 'gross' | 'net';
conditions: object;
}
Best Practices
-
Template Management
- Clear naming
- Detailed documentation
- Regular review
- Version control
- Change tracking
-
Fee Configuration
- Market alignment
- Cost coverage
- Competitive analysis
- Clear structure
- Documentation
-
Revenue Sharing
- Fair distribution
- Clear rules
- Documentation
- Regular review
- Compliance check
-
Compliance
- Regulatory review
- Disclosure requirements
- Documentation
- Audit trails
- Regular updates
Integration Points
Merchant Management
- Pricing assignment
- Fee calculation
- Revenue tracking
- Cost management
- Reporting
Transaction Management
- Fee calculation
- Split processing
- Revenue distribution
- Cost tracking
- Reconciliation
Financial Management
- Revenue tracking
- Cost management
- Profit calculation
- Report generation
- Analysis tools
Calculation Methods
Transaction Pricing
- Base rate calculation
- Volume consideration
- Fee application
- Split calculation
- Final amount
Monthly Charges
- Fee identification
- Condition verification
- Amount calculation
- Split application
- Billing generation
Revenue Distribution
- Gross amount
- Fee deduction
- Split calculation
- Override application
- Final distribution
Reporting
Template Reports
- Usage statistics
- Revenue analysis
- Comparison reports
- Performance metrics
- Profitability analysis
Revenue Reports
- Split distribution
- Override payments
- Commission tracking
- Profit analysis
- Trend analysis
Analysis Tools
- Pricing comparison
- Revenue projection
- Cost analysis
- Profitability calculation
- Market analysis