This changelog tracks all changes to the Royalti.io API. Entries are organized by release date, with newest changes first.
New Features
Summary Endpoints
Added 8 new summary endpoints that return aggregated statistics for key entities. All endpoints support role-based scoping where admins/owners see tenant-wide data, and regular users see only their associated data.New Endpoints:| Endpoint | Description |
|---|---|
GET /product/summary | Total products, counts by status/format/type, revenue from ProductStats |
GET /asset/summary | Total assets, counts by type/explicit, revenue from AssetStats |
GET /artist/summary | Total artists, counts by label, revenue from ArtistStats |
GET /user/summary | Total users, counts by role/status, accounting totals |
GET /split/summary | Total splits, counts by type/level, conditional splits breakdown |
GET /payment/summary | Total payments, counts by status/currency, total amounts |
GET /expense/summary | Total expenses, counts by type/expenseableType, total amounts |
GET /revenue/summary | Total revenues, counts by type, total amounts |
- Role-based scoping: Regular users see only data for their associated artists
- Parallel aggregation: All queries run concurrently for optimal performance
- Consistent format: All endpoints return
{ message, summary }structure
These summary endpoints are ideal for dashboard widgets and analytics displays where you need aggregated counts without fetching full entity lists.
New Features
Royalty Source Filtering Enhancement
Added optionalincludeAll query parameter to GET /file/sources for more secure and precise source filtering.Parameter Details:- Name:
includeAll - Type: String enum (
"true"|"false") - Default:
"true"(maintains backward compatibility) - Location: Query parameter
includeAll=true(default): Returns all active public sources (backward compatible)includeAll=false: Returns only tenant-associated sources (more secure, filters to sources your organization has configured)
Security Improvements
Pattern Creator Admin Authentication
All/pattern-creator/* routes now require admin authentication via enhancedGodminAuth middleware.Impact:- Non-admin users can no longer access pattern creator endpoints
- Pattern creator is now properly secured as an admin-only feature
Deprecated Endpoints
Pattern Creator Sources Endpoint Removed
Removed:GET /pattern-creator/sourcesStatus: Endpoint has been removed from the codebaseReplacement: Use GET /sources/admin instead for admin-level source managementReason: This endpoint was redundant with /sources/admin and has been consolidated to reduce code duplication and improve maintainability.Migration Guide:/pattern-creator/sources will return 404 Not FoundImprovements
- Reduced code duplication by 70% through introduction of shared
RoyaltySourceService - Enhanced service layer architecture for better maintainability
- Improved Swagger documentation accuracy across all source-related endpoints
- Updated integration guides with new parameter documentation
The
includeAll parameter addition is fully backward-compatible. Existing API clients will continue to work without changes, receiving all active sources by default.New Documentation
Default Settings API
Comprehensive documentation added for the Default Settings system - a powerful hierarchical configuration management feature for catalog items.New API Reference Pages (16 endpoints):Default Settings Management:- GET
/defaultsettings/{entityType}/{entityId}- Retrieve default settings - GET
/defaultsettings/settings/{settingId}- Get single setting by ID - POST
/defaultsettings/{entityType}/{entityId}- Create default settings - PUT
/defaultsettings/{entityType}/{entityId}/{settingId}- Update default settings - DELETE
/defaultsettings/{entityType}/{entityId}/{settingId}- Delete default settings - POST
/defaultsettings/clone- Clone settings between entities
- GET
/defaultsettings/templates- Browse reusable templates - GET
/defaultsettings/templates/popular- Get most-used templates - POST
/defaultsettings/templates- Create configuration templates - PUT
/defaultsettings/templates/{templateId}- Update template - DELETE
/defaultsettings/templates/{templateId}- Delete template - POST
/defaultsettings/templates/{templateId}/apply- Apply template to entity
- POST
/defaultsettings/preview/resolve- Preview inheritance chain - POST
/defaultsettings/preview/asset- Preview asset defaults - POST
/defaultsettings/preview/product- Preview product defaults - POST
/defaultsettings/preview/release- Preview release defaults
- Hierarchical inheritance chain (User → Artist → Label → Catalog → Tenant)
- Four settings categories: Content, Business, DDEX, and Validation
- Template system for reusable configurations
- Preview endpoints for testing before applying
- Advanced use cases and best practices
- Complete code examples in Node.js, Python, and cURL
- Inheritance Chain: Settings cascade from tenant-wide defaults down to user-specific overrides
- Categories: Organize settings by content metadata, business info, DDEX configuration, and validation rules
- Templates: Create and share reusable configuration presets
- Preview System: Test how defaults will be applied without modifying data
- Clone Operation: Duplicate settings between entities for consistency
The Default Settings feature has been available since v2.6.0 but was previously undocumented. This release makes the full API specification available to all developers.
New Features
Webhook Delivery System
Send real-time event notifications to your external systems with our new webhook infrastructure.- Configure webhook endpoints per workspace with custom headers and authentication
- Automatic retry with exponential backoff for failed deliveries
- Monitor webhook health and delivery status in real-time
- Secure webhook delivery with signature verification and rate limiting
- Support for multiple event types: payments, royalty processing, asset changes, releases, and billing events
Enhanced Notification System
Stay informed with improved multi-channel notifications across your workspace.- Multi-channel notification support (email, SMS, push, in-app)
- Customizable notification templates for different event types
- User-level notification preferences
- Real-time event routing and delivery
Improvements
- Enhanced webhook delivery retry logic for better reliability
- Improved notification routing performance
- Better error handling and status reporting for webhook endpoints
- Updated integration guides with webhook examples
This release is fully backward-compatible with v2.6.0. No breaking changes.
New Endpoints
- GET
/accounting/{id}/stats- Get detailed accounting statistics - POST
/ddex/ern/generate- Generate ERN messages for digital distribution - GET
/royalties/analytics/artist- Advanced artist revenue analytics
Breaking Changes
Improvements
- Enhanced error messages for validation failures
- Improved performance for bulk operations (up to 50% faster)
- Better caching strategies for frequently accessed data
- Added pagination support to all list endpoints
Bug Fixes
- Fixed issue with split calculations not totaling 100% in edge cases
- Resolved timezone handling for international date fields
- Corrected DDEX message validation for special characters
New Endpoints
- POST
/splits/validate- Validate split configurations before saving - GET
/releases/{id}/analytics- Get release performance metrics - POST
/notifications/preferences- Configure notification settings
Improvements
- Added multi-currency support for payments
- Enhanced DDEX provider configuration options
- Improved royalty file pattern recognition
Bug Fixes
- Fixed edge case in split succession calculations
- Resolved issues with large file uploads (>100MB)
- Corrected artist merge functionality
New Endpoints
- GET
/accounting/transactions/summary- Get transaction summaries - POST
/artist/bulk- Create artists in bulk - GET
/revenue/analytics/country- Geographic revenue breakdown
Improvements
- Added BigQuery integration for advanced analytics
- Enhanced file processing queue performance
- Improved error handling across all endpoints