Releases: getlago/lago-api
Releases · getlago/lago-api
v1.22.1
What's Changed
- Feat(multi-entities): add validations for billing_entity by @annvelents in #3237
- feat(multi-entities): Add multi_entities premium integrations with two tiers... by @ancorcruz in #3252
- feat: add customer email by @brunomiguelpinto in #3254
- feat(data): Extract revenue streams resolver to data_api namespace by @rsempe in #3256
- feat(multi-entities): Basic billing entity create service with guard by @ancorcruz in #3258
- feat(data): Rename customerCurrency to currency for revenue streams by @rsempe in #3259
- fix(webhook): wallet.updated needs to be sent only after_commit by @julienbourdeau in #3261
- fix: Wallet metadata issues by @brunomiguelpinto in #3268
- feat(console): Add helper to enable premium integrations by @julienbourdeau in #3263
- chore(dev): colorize logs in dev env by @julienbourdeau in #3270
- Fix remove invoice paid due amount by @ivannovosad in #3253
- Feat: update hard_delete_invoice Method by @brunomiguelpinto in #3273
- bug(PayInAdvance) - Don't loose precision when converting timestamp by @nudded in #3274
- feat(credit): Introduce item description by @julienbourdeau in #3269
- fix(stripe): Better errors on Stripe customer checkout url by @julienbourdeau in #3247
- feat(stripe): Save
payment_method_data
for successful Payments by @julienbourdeau in #3230 - feat(data): Add graphql endpoint for revenue streams plans by @rsempe in #3278
- feat(payment-receipts): Add models and serializers by @ivannovosad in #3229
- feat(data): Add graphql endpoint for revenue streams customers by @rsempe in #3281
- fix(checkout-link): Fix the total due amount by @ivannovosad in #3280
- revert: save payment method by @julienbourdeau in #3282
- fix: retry Net::ReadTimeout for pulling taxes by @lovrocolic in #3283
- bug(advance_charges): invoice paid in advance succeeded fees by @ancorcruz in #3284
- feat(payment-receipts): Add payment receipts controllers by @ivannovosad in #3246
- bug(ProgressiveBilling) - Reset progressive billing credits when refreshing draft by @nudded in #3288
- Feat(multientities):remove usage of is_default flag on billing_entities by @annvelents in #3266
- Feat(multi-entities): migration to remove is_default from billing_entities by @annvelents in #3267
- Feat(multientities): remove default migration cleanup by @annvelents in #3276
- fix(kafka): Ensure timestamp is pushed as float by @vincent-pochet in #3290
- feat(data): Add graphql endpoint for mrrs by @rsempe in #3287
- Feat(multientities): add billing_entity code uniqueness validation by @annvelents in #3279
Full Changelog: v1.22.0...v1.22.1
v1.22.0
What's Changed
- feat(data): Compute daily usages for positive fees only by @rsempe in #3172
- feat(wallet): New
wallet.(created|updated|terminated)
webhooks by @julienbourdeau in #3133 - feat(DataExport): move processing to default queue by @nudded in #3175
- fix(fee-estimation): fix rounding when small amounts provided by @floganz in #3174
- misc: Add kafka event consumer by @vincent-pochet in #3176
- chore(rubocop): Disable or fix last errors by @julienbourdeau in #3179
- chore(style): Fix all string litteral quotes (Style/StringLiterals) by @julienbourdeau in #3177
- chore(deps): bump rack from 2.2.10 to 2.2.11 by @dependabot in #3180
- chore(rubocop): Enable Style/StringLiterals by @julienbourdeau in #3181
- fix: Avoid startup issue with missing LAGO_KARAFKA_WEB_SECRET by @vincent-pochet in #3183
- fix(rate-limit): Fix rate limit errors by @ivannovosad in #3184
- fix(invoice-webhooks): Fix progressive billing invoice not having webhook on payment retry by @floganz in #3182
- fix(karafka): Fix env config by @vincent-pochet in #3186
- fix(invoices): Fix progressive billing by @ivannovosad in #3188
- feat(webhooks): Add subscription updated webhook by @ivannovosad in #3169
- feat(data): Remove in_advance_fee_amount_cents from revenue streams by @rsempe in #3187
- feat(regroup_fee): Sum fees to get invoice totals instead of recomputing taxes by @julienbourdeau in #3153
- misc: Extract DailyUsages::FillHistoryJob to a new long_running queue by @rsempe in #3192
- misc: Change queue from low_priority to default when creating a payment by @rsempe in #3193
- fix(stripe): Avoid raising not_found for deleted stripe customers by @vincent-pochet in #3194
- fix(add_on): Validate presence of code by @vincent-pochet in #3195
- fix: Don't raise error when invoice's status is invalid by @rsempe in #3197
- fix(payment): Handle deleted customers by @vincent-pochet in #3196
- misc(charge): Index pay_in_advance charges to speed-up post processing by @vincent-pochet in #3189
- fix(integration): Avoid raising RecordNotUnique on race condition by @vincent-pochet in #3199
- feat(data): Do not create daily usage when no usage by @rsempe in #3198
- fix(webhook): Handle errors with payment and refunds by @vincent-pochet in #3200
- misc(mailer): Improve attachements names by @vincent-pochet in #3201
- fix(data): Convert revenue stream amount currency to non nullable by @rsempe in #3202
- misc(stripe): Improve error code handling by @vincent-pochet in #3203
- fix(customer): Add validation om customer type by @vincent-pochet in #3204
- fix(integration): Do not raise when invalid login attempt on netsuite by @rsempe in #3205
- Feat(manual payments): Support for Partial/Manual Payments by @brunomiguelpinto in #3125
- misc(integration): Add retry for invoice creation on Net::ReadTimeout by @vincent-pochet in #3207
- fix(spec): tentative fix for flacky test by @julienbourdeau in #3213
- feat(multi-entities): Add billing entity model by @ancorcruz in #3217
- chore(deps): bump nokogiri from 1.16.8 to 1.18.3 by @dependabot in #3216
- feat(stripe): Add Stripe
crypto
payment method by @julienbourdeau in #3214 - feat(mailers): Add from email premium integration by @jdenquin in #3218
- feat(dev): Add console helpers for local development by @julienbourdeau in #3210
- chore(deps): Update rubocop and standard by @julienbourdeau in #3221
- misc(incoming_webhook): Refact handling for Adyen and Cashfree by @vincent-pochet in #3212
- fix: Add unique index on payment provider id by @rsempe in #3223
- fix(currency): Use some ISO codes instead of symbols by @vincent-pochet in #3225
- fix: Delete duplicated failed payments by @rsempe in #3226
- fix(manual_payments): Fix Incorrect total_paid_amount_cents for Invoices Without Payments by @brunomiguelpinto in #3219
- feat(gql): Introduce ObfuscatedStringType by @julienbourdeau in #3209
- chore(spec): Merging rails_helper into spec_helper by @julienbourdeau in #3208
- feat(invoice-preview): generating invoice review for existing subscriptions by @lovrocolic in #3231
- fix(stripe): Avoid raising for concurent status update by @vincent-pochet in #3232
- fix(netsuite): Prevent trying to create customer with max netsuite state reached by @rsempe in #3233
- fix(integration): Fix error handling for Bad Gateway errors received as HTTP 200 by @vincent-pochet in #3234
- fix: Netsuite sync with customer nil state by @rsempe in #3235
- feat(stripe): Stop listening to
charge.succeeded
webhook by @julienbourdeau in #3228 - feat(Uniqueness) - Mark BillNonInvoiceableFeesJob as unique by @nudded in #3239
- feat(multi-entities): Add billing entities applied taxes relationship by @ancorcruz in #3227
- Feat(multi-entities): add references to and from billing_entity by @annvelents in #3224
- misc: Update rails to v7.2 by @ancorcruz in #2894
- Revert "misc: Update rails to v7.2" by @rsempe in #3243
- fix(netsuite): Use max length when creating netsuite customer by @rsempe in #3245
- misc(payment): Factorise logic for payment_url generation by @vincent-pochet in #3238
- Feat stripe bank transfers by @brunomiguelpinto in #3236
Full Changelog: v1.21.0...v1.22.0
v1.21.0
What's Changed
- bug(ProgressiveBilling): take failed invoices into account by @nudded in #3127
- misc(billing): Split billing job per organization by @vincent-pochet in #3109
- bug(ProgressiveBilling) - Also recalculate current_usage when invoiced usage is changed by @nudded in #3128
- misc: Introduce BaseResult to get rid of OpenStruct by @vincent-pochet in #3122
- chore(versions): Bump redis related gems and configure reconnection in redlock by @nudded in #3132
- fix: clickhouse related specs by @vincent-pochet in #3138
- feat: add Singapore to tax invoices label countries by @brunomiguelpinto in #3136
- Fix(rev-share): do not display logo in credit note PDF by @annvelents in #3141
- imp(webhooks): Increase webhook endpoints limit to 10 by @jdenquin in #3143
- fix(invoice-preview): Prevent customer updates during invoice preview by @floganz in #3140
- perf(InvoiceGeneration) - add index on invoices to speed up fetching the highest organization_sequential_id by @nudded in #3146
- feat: change BillPaidCreditJob to high_priority by @brunomiguelpinto in #3145
- fix(anrok): Remove cache for Current Usage by @julienbourdeau in #3142
- fix(fees): Avoid empty invoice subscription on regroup fees by @vincent-pochet in #3147
- chore(spec): Use
stub_pdf_generation
helper by @julienbourdeau in #3148 - chore(spec): Use instance_double instead of OpenStruct by @julienbourdeau in #3150
- Fix(revenue-share): add self-billed field to data exports by @annvelents in #3149
- fix(invoice): Add GraphQL flag to know editable status by @vincent-pochet in #3152
- feat: added PaymentRequestMailer on rescue by @brunomiguelpinto in #3155
- chore(GraphQL): rename invoice subscription attribute by @ansmonjol in #3157
- bug(GracePeriod) - Make grace period update async for increased reliability by @nudded in #3154
- hotfix(invoice): Fix graphql object rendering by @vincent-pochet in #3158
- chore(Cleanup): remove dead code in Organizations::UpdateInvoiceGrace… by @nudded in #3159
- bug(Event): Propagate expression evaluation failure by @nudded in #3160
- fix: Remove tax cache from invoice preview by @lovrocolic in #3156
- Bug(BatchEvent): add validation error propagation to batch event service by @nudded in #3161
- fix: prevent calling eu tax service when not needed by @lovrocolic in #3134
- feat(api_key): cache api key and organization by @vincent-pochet in #3137
- New
remove_branding_watermark
Premium addons by @julienbourdeau in #3162 - chore(deps): bump net-imap from 0.5.5 to 0.5.6 by @dependabot in #3164
- fix(migrations): Remove migration tasks by @vincent-pochet in #3165
- chore(spec): group scattered it blocks for Graphql Types by @julienbourdeau in #3167
- chore(git): Add #3167 to .git-blame-ignore-revs by @julienbourdeau in #3168
- feat(data): Add revenue streams resolver by @rsempe in #3151
- fix(integrations): Fix invoices with progressive billing by @ivannovosad in #3166
- Revert "fix(integrations): Fix invoices with progressive billing" by @ivannovosad in #3170
Full Changelog: v1.20.2...v1.21.0
v1.20.2
What's Changed
- fix(current usage): fix current usage taxes by @lovrocolic in #3115
- feat(data): Add premium integrations enabled methods by @rsempe in #3118
- chore(valvalt): Update valvat version by @jdenquin in #3116
- Fix(revshare): add self billed credit note pdf by @annvelents in #3113
- feat(api): Add GET /api/v1/wallet_transactions/:id endpoint by @julienbourdeau in #3119
- misc(adjusted_fee): Allow fee adjustement without pre-existing fee by @vincent-pochet in #3083
- feat(InstantEstimate) - Standard charges by @nudded in #3120
- feat(boleto): Introduce Boleto as a valid Stripe Payment Method by @julienbourdeau in #3111
- Allow to override existing customer attributes by @floganz in #3124
- fix(invoice-preview): disable preview feature for freemium users by @lovrocolic in #3126
Full Changelog: v1.20.1...v1.20.2
v1.20.1
What's Changed
- feat: Support for Multiple Date Formats in Manual Payments Service by @brunomiguelpinto in #3110
- chore(deps): Bump lago-expression to v0.1.3 by @nudded in #3114
- feat(stripe): Save Payment Method in Customer when paying invoice with checkout url by @julienbourdeau in #3107
- Feat(InstantEstimate) - estimate instant fees by @nudded in #3033
Full Changelog: v1.20.0...v1.20.1
v1.20.0
What's Changed
- fix(payment): Ensure payment status is checkd as a string by @vincent-pochet in #3104
- fix(cashfree): Fix webhook and payment flow by @AyushChothe in #3106
- feat(preview-invoice): add route and controller action by @lovrocolic in #3108
- Reapply "feat(invoice): Avoid generating 0 amount charge fees (#3032)" (#3059) by @vincent-pochet in #3068
- misc(fee): Delete zero amount finalized fees by @vincent-pochet in #3020
New Contributors
- @AyushChothe made their first contribution in #3106
Full Changelog: v1.19.1...v1.20.0
v1.19.1
What's Changed
- chore(fees): Add unique index on event transaction id by @jdenquin in #3079
- Feat(revshare): self billed invoices numbering by @annvelents in #3078
- Fix: add validation on transaction_metadata type for recurring transaction rules by @annvelents in #3087
- feat(revshare): self billed invoice pdf/html template by @ancorcruz in #3089
- feat(revshare): missing bits of the feature... by @ancorcruz in #3090
- Add ability to filter invoice by absence of metadata by @floganz in #3082
- fix: adapt nango status code checks by @lovrocolic in #3093
- feat(invoice-preview): Add invoices preview context service by @floganz in #3091
- feat(invoice-preview): add preview support for wallet and credit note credits by @lovrocolic in #3084
- feat(revshare): missing bits to complete the feature by @ancorcruz in #3094
- feat(preview-invoice): add tax provider support for preview invoice by @lovrocolic in #3095
- Chore: add validation on credit note creation and estimate to have items as an array by @annvelents in #3096
- Chore: delete invoice errors for sequential number generation when finishing invoice generation by @annvelents in #3092
- fix(invoice-filtering): Wrong total count when filter invoices by metadata by @floganz in #3097
- fix(webhook): Fix specs when webhook worker is enabled by @vincent-pochet in #3099
- fix(payment): Handle payment and invoice status update by @vincent-pochet in #3088
- fix(Fee) - make sure organization_id is stored by @nudded in #3100
- fix(tasks): Fix signup task env var by @jdenquin in #3101
- fix: filter payments based on visible invoices by @brunomiguelpinto in #3102
- add rescue when failing to update charge filters and charges by @annvelents in #3103
Full Changelog: v1.19.0...v1.19.1
v1.19.0
What's Changed
- feat(invoices): Add new filters by @floganz in #3046
- fix(validations): Fix subscriptions validate service by @ivannovosad in #3052
- feat(payment_providers): Add Cashfree by @vincent-pochet in #2767
- feat(invoice): Avoid generating 0 amount charge fees by @vincent-pochet in #3032
- Feat manual payments controller by @ivannovosad in #3045
- Revert "feat(invoice): Avoid generating 0 amount charge fees (#3032)" by @vincent-pochet in #3059
- fix(terminate-relations): Fix terminate relations service by @ivannovosad in #3061
- feat(revshare): Add db columns for partners and self_billed invoices by @ancorcruz in #3062
- feat(revshare): Skip self billed invoices in analytics by @ancorcruz in #3066
- feat(revshare): Create customers with partner as account_type by @ancorcruz in #3065
- feat: Expose billing periods in invoice serializer by @vincent-pochet in #3064
- feat(invoice-preview): add base preview service by @lovrocolic in #3056
- Add taxes to recreated recurring pay in advance fees by @floganz in #3069
- feat(revshare): self billed invoice creation and skip payments by @ancorcruz in #3067
- feat(segment): Remove 8 unused events by @julienbourdeau in #3075
- feat(revshare): update customer account_type by @ancorcruz in #3074
- chore(spec): Rename shared example file by @julienbourdeau in #3076
- Feat(revshare): self billed invoices - do not trigger integrations by @annvelents in #3072
- chore: Use enum with positional arguments by @julienbourdeau in #3077
- fix(migration): Payment status migration by @vincent-pochet in #3080
- fix(stripe): Idem-potency errors should keep the payment pending by @vincent-pochet in #3063
- chore(gems): Upgrade gems to latest patch version by @julienbourdeau in #3081
- feat(invoice-preview): add logic for applying coupons on preview invoice by @lovrocolic in #3073
- misc(stripe): Improve payment create specs by @vincent-pochet in #3086
Full Changelog: v1.18.0...v1.19.0
v1.18.0
What's Changed
- fix: Retry when getting stale wallet error for pay in advance events by @rsempe in #3027
- feat: Add payment type and reference by @brunomiguelpinto in #3003
- Fix invoice grace period saving with null values by @nudded in #3015
- fix: Update provider taxes rescue logic by @lovrocolic in #3028
- fix(invoice): Use BigDecimal rather than float for amount details by @vincent-pochet in #3030
- feat(manual-payments): Add payment serializer by @ivannovosad in #3031
- feat(manual-payments): Add service to create manual payments by @ivannovosad in #3029
- misc(Github) - Do not use secrets when hardcoded values suffice by @nudded in #3038
- fix(event): retrieve clickhouse events by @vincent-pochet in #3039
- fix: Recurring fee not displayed on invoices after upgrade by @ancorcruz in #3012
- fix: Use succeeded_at to select fees for regrouping by @rsempe in #3034
- Feat (invoice_custom_sections): customer update service by @annvelents in #2960
- misc(wallet): Refactor wallet transaction related jobs queuing by @vincent-pochet in #3040
- Feat (invoice_custom_sections): refactor invoice_custom_sections inclusion by @annvelents in #3006
- fix(stripe): Payment failing with requires_payment_method should be marked as failed by @vincent-pochet in #3042
- misc(BillingWorker) - Move Invoices::RefreshDraftJob to billing queue by @nudded in #3043
- fix: Cast filters to string on ingestion by @rsempe in #3044
- Propagate StaleObjectErrors so PayInAdvance jobs retry by @justinberry in #3036
- fix(migrations): support pg databases with unaccent installed by @sanchezcarlosjr in #3048
- misc(invoice): Add integration_customers to the invoice payload by @ivannovosad in #3050
- fix(one-off-invoice): Fix create one off invoice service by @ivannovosad in #3051
- misc(PaymentRequest): Apply payment idempotency refactor by @vincent-pochet in #2986
- Feat(invoice_custom_sections): api controllers by @annvelents in #3007
New Contributors
- @justinberry made their first contribution in #3036
- @sanchezcarlosjr made their first contribution in #3048
Full Changelog: v1.17.5...v1.18.0
v1.17.5
What's Changed
- fix(data): Populate daily usages by @rsempe in #3000
- fix(data): Handle last day for timezone with positive offset by @rsempe in #3001
- misc: Add more tests by @floganz in #3004
- fix(data): Handle last day for timezone with positive offset by @rsempe in #3005
- fix: Ensure Plans::DestroyJob are queued only once by @ancorcruz in #3010
- feat(anrok): make api calls async in dedicated service by @lovrocolic in #3002
- fix (tax-integrations): change queue for the job that apply taxes on pending invoice by @lovrocolic in #3011
- feat(payments): Add payment permissions by @ivannovosad in #2922
- feat: add concurrency limit by @brunomiguelpinto in #3014
- fix(broken-test): DailyUsages::ComputeService test by @ancorcruz in #3016
- fix(locks): Stop enqueuing duplicates job because of default lock TTL by @jdenquin in #3017
- feat: Add Conditional Integration Customers to use on resync webhook by @brunomiguelpinto in #3018
- fix: Persist inbound stripe webhooks by @ancorcruz in #2972
- fix(jobs): Increase the RefreshDraftJob Lock TTL by @jdenquin in #3019
- perf(DraftService) - shortcut timestamp fetching if there are invoice subscriptions by @nudded in #3021
- fix(customer): avoid duplicated fields in customer response by @vincent-pochet in #3022
- bug(PullTaxesAndApplyService) use call! instead of call by @nudded in #3023
- perf(PullAndApplyTaxes) - remove ordering by @nudded in #3024
- fix(fee): Charge pay in advance interval without any day-shift by @rsempe in #3025
- fix(fee): Prevent creating fee for an incorrect billing period by @rsempe in #3026
Full Changelog: v1.17.4...v1.17.5