v1.16.0
What's Changed
- feat(flexible aggregation) - Support flexible aggregation on billable metric by @nudded in #2704
- feat(rounding): Add rounding fields to billable_metrics by @vincent-pochet in #2754
- feat(rounding): Expose rounding attributes to APIs by @vincent-pochet in #2764
- feat(dunning): campaign creation requires organization premium add-on by @ancorcruz in #2759
- feat(dunning): find eligible customers and applied dunning campaign by @ancorcruz in #2757
- feat(dunning): only one dunning campaign applied to organization on creation by @ancorcruz in #2760
- fix: eager load invoice attachments by @lovrocolic in #2776
- feat(rounding): Apply rounding to billable metric aggregation results by @vincent-pochet in #2775
- Feat add ability to rotate api key by @floganz in #2771
- fix: Ensure DataExports::CombinePartsJob uniqueness by @ancorcruz in #2777
- misc(cors): Support new LAGO_DOMAIN by @jdenquin in #2780
- feat(dunning): validate dunning campaign has at least one threshold by @ancorcruz in #2762
- feat(netsuite): Cleanup syncs by @ivannovosad in #2782
- fix: Ensure correct integration customer is used when syncing netsuite payments by @lovrocolic in #2785
- feat(salesforce): Added customers webhooks by @brunomiguelpinto in #2783
- misc(docker): Improve migrate script by @jdenquin in #2778
- bug(DataExport) - Decrease batch size for data export & use tempfile by @nudded in #2786
- Bug(DataExport) - update DEFAULT_BATCH_SIZE of ExportResourcesJob by @nudded in #2788
- feat(salesforce): Add integration models by @ivannovosad in #2787
- feat(api-key-management): Track when API key was last used by @floganz in #2779
- feat(DataExport) - don't rely on SubscriptionSerializer for plan code and external id by @nudded in #2792
- fix(custom_aggregation): Ensure custom properties are stored as Hash by @vincent-pochet in #2781
- feat(Salesforce): Add ability to create salesforce customer by @brunomiguelpinto in #2794
- feat(salesforce): Add invoice resynced Webhook by @brunomiguelpinto in #2791
- feat(dunning): Permit creation of payment request without email by @rsempe in #2784
- Feat salesforce services by @ivannovosad in #2795
- feat(DailyUsage): Add daily_usages:fill_history task by @vincent-pochet in #2751
- misc(nango): Increase the number of job retries in case of RequestLimitError by @ivannovosad in #2798
- feat(dunning): Stop and reset counters for customers by @rsempe in #2796
- Fix(anrok): return zero-tax breakdown if client facing taxes sum is 0 by @annvelents in #2797
- feat(api-key-management): Add name to the API key model by @floganz in #2793
- misc(filters-contracts): Define contracts to validate query objects filters by @ancorcruz in #2650
- feat(dunning): schedule process dunning campaigns jobs every hour at 45' by @ancorcruz in #2766
- fix(netsuite): Fix netsuite payment payload by @ivannovosad in #2790
- fix(subscription): Ensure consistent ordering on the index end-point by @vincent-pochet in #2801
- fix(customer): Add missing validation for shipping country by @floganz in #2804
- fix(gocardless): Handle validation error with refund by @vincent-pochet in #2805
- misc: Add more after_commit to avoid deserialization errors by @vincent-pochet in #2803
- fix: Ability to generate legacy invoice pdfs without charges duration by @rsempe in #2806
- feat(api-key-management): Add ability to create API key by @floganz in #2802
- bug(BillableMetric) - BillableMetrics::DeleteEventsJob remove new-style events as well by @nudded in #2810
- feat(plan-charges-cascading): Support charge filters cascading by @lovrocolic in #2761
- feat(dunning): Use display name of customer in email by @rsempe in #2811
- add migration to set parent_ids to charges by @annvelents in #2738
- fix missing children on plan by @annvelents in #2813
- improvement(Cascade) - Improve cascade jobs by passing in the expected amount_cents by @nudded in #2812
- feat(netsuite): Remove sales orders services by @ivannovosad in #2807
- misc(stripe): Refact payment method update webhooks by @vincent-pochet in #2808
- fix(payment_request): Avoid deserialization issues by @vincent-pochet in #2815
- fix: Ability to delete assigned customer taxes from the API by @rsempe in #2814
- fix(gocardless): Handle GoCardlessPro::ValidationError when creating payment by @vincent-pochet in #2817
- fix(adyen): Handle Adyen::AuthenticationError when creating the customer by @vincent-pochet in #2820
- fix(netsuite): Aggregator jobs should be unique by @ivannovosad in #2818
- fix(subscription upgrade): Upgrade subscriptions previously considered downgrade on amount increase by @ancorcruz in #2823
- Bug(PayInAdvanceFee) - fix grouped_by logic for Fees::CreatePayInAdvanceService by @nudded in #2824
- feat(api-key-management): Add ability to destroy an API key via graphql by @floganz in #2809
- Add ability to rotate API key with expiry period by @floganz in #2822
- fix(data-export): File key uniqueness by @floganz in #2821
- misc(PaymentProviders): Refact webhooks folder structure by @vincent-pochet in #2829
- fix(netsuite): Fix possible duplicate integration resources creation by @ivannovosad in #2826
- fix(stripe): Handle missing payment by @vincent-pochet in #2825
- Fix specs and payment payload by @ivannovosad in #2830
- feat(dunning): Add deleted_at to dunning campaign threshold by @ancorcruz in #2831
Full Changelog: v1.15.2...v1.16.0