v1.0.0-beta.228

silvia-odwyer/photonv1.0.0-beta.228May 19, 2026by github-actions[bot]

AI Summary

This beta release focuses on billing and credit systems, introducing v3 APIs for currencies and meters, settlement modes, and various credit management features like purchase charges and tax codes.

Key Highlights

  • Security fix for SQL injection (CVE-2026-8462)
  • Added v3 currencies API spec and handlers
  • Implemented credit purchase charges and settlement modes
  • Added tax codes and tax IDs to charges
  • Added CSV response support for meter queries

New Features

  • Currencies v3 API spec
  • Custom currencies to database schema
  • Optional at query param to V1 grant void endpoint
  • Credit purchase charges
  • Meter query v3
  • Feature cost (LLM cost) tracking
  • Grant balances to v2 entitlement value API
  • Settlement mode for subscription and plan schemas
  • Invoice settlement mode for credits
  • CSV response for post meter query
  • Ratecard type to v3 productcatalog
  • Credit priority and effective at
  • Tax code and tax behavior in charges
  • Usage-based payment flows
  • External payment endpoints

Full Release Notes

<!-- Release notes generated using configuration in .github/release.yml at v1.0.0-beta.228 -->

## What's Changed
### Security Fixes 🚨
* fix(sec): sql injection in validate jsonpath query (CVE-2026-8462) by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/4383
### Exciting New Features 🎉
* feat(api): Add currencies v3 api spec by @mark-vass-konghq in https://github.com/openmeterio/openmeter/pull/3883
* feat(ent): Add custom currencies to the database schema by @mark-vass-konghq in https://github.com/openmeterio/openmeter/pull/3888
* feat(api): add optional `at` query param to V1 grant void endpoint by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/3912
* feat(api): Add API Handlers to the v3 currencies API by @mark-vass-konghq in https://github.com/openmeterio/openmeter/pull/3891
* feat(credit): credit purchase charges by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/3925
* feat(api): meter query v3 by @tothandras in https://github.com/openmeterio/openmeter/pull/3918
* feat(llmcost): add by @hekike in https://github.com/openmeterio/openmeter/pull/3905
* feat(api): add meter query v3 handler by @tothandras in https://github.com/openmeterio/openmeter/pull/3927
* fear(api): v3 feature cost by @hekike in https://github.com/openmeterio/openmeter/pull/3932
* feat(entitlement): add grant balances to v2 entitlement value api by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/3922
* feat(llmcost): alias request and response token types by @hekike in https://github.com/openmeterio/openmeter/pull/3953
* feat(cost): normalize query by @hekike in https://github.com/openmeterio/openmeter/pull/3954
* feat(api): v3 feature endpoint types by @rolosp in https://github.com/openmeterio/openmeter/pull/3972
* feat(feature): migrate meter_slug to meter_id by @hekike in https://github.com/openmeterio/openmeter/pull/3987
* feat(api): added price types by @rolosp in https://github.com/openmeterio/openmeter/pull/3982
* feat(ledger): chargeadapters by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/3963
* feat(api): v3 feature handlers and unit  config by @hekike in https://github.com/openmeterio/openmeter/pull/3986
* feat(api): credits API specification by @tothandras in https://github.com/openmeterio/openmeter/pull/3938
* feat(backend): implement invoice settlement mode for credits by @mark-vass-konghq in https://github.com/openmeterio/openmeter/pull/3976
* feat(api): add csv response to post meter query by @tothandras in https://github.com/openmeterio/openmeter/pull/4004
* feat(api): ratecard type introduction to v3 productcatalog types by @rolosp in https://github.com/openmeterio/openmeter/pull/3994
* feat: refactor charges common meta to use mixins by @turip in https://github.com/openmeterio/openmeter/pull/3995
* feat(ent): Add settlement mode for subscription and plan schemas by @mark-vass-konghq in https://github.com/openmeterio/openmeter/pull/4005
* feat(feature): unit cost update api by @hekike in https://github.com/openmeterio/openmeter/pull/3962
* feat: implement credits-only flat fee handling by @turip in https://github.com/openmeterio/openmeter/pull/4009
* feat: subscription sync semantic patching by @turip in https://github.com/openmeterio/openmeter/pull/4014
* feat(backend): add settlement mode to internal types by @mark-vass-konghq in https://github.com/openmeterio/openmeter/pull/4013
* feat(llmcost): add source filter to list prices and overrides API by @hekike in https://github.com/openmeterio/openmeter/pull/4022
* feat(api): added plan and addon operations by @rolosp in https://github.com/openmeterio/openmeter/pull/4015
* feat: subs sync charge create by @turip in https://github.com/openmeterio/openmeter/pull/4024
* feat(api): Add settlement mode to v1 api by @mark-vass-konghq in https://github.com/openmeterio/openmeter/pull/4029
* feat: add support for negative credit allocations by @turip in https://github.com/openmeterio/openmeter/pull/4035
* feat(api): add settlement mode to v1 api handlers by @mark-vass-konghq in https://github.com/openmeterio/openmeter/pull/4044
* feat: credit priority and effective at by @turip in https://github.com/openmeterio/openmeter/pull/4066
* feat(api): credit grants handler by @tothandras in https://github.com/openmeterio/openmeter/pull/4075
* feat: charges list api by @turip in https://github.com/openmeterio/openmeter/pull/4085
* refactor: use helpers for converting labels by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/4097
* feat: invoice calculation hook by @turip in https://github.com/openmeterio/openmeter/pull/4116
* feat: support AIP filtering by @tothandras in https://github.com/openmeterio/openmeter/pull/4117
* chore: allow enabling credit then invoice seperately by @turip in https://github.com/openmeterio/openmeter/pull/4136
* feat: book invoice accrued for usagebased items by @turip in https://github.com/openmeterio/openmeter/pull/4144
* feat(api): plan and planaddon handlers by @rolosp in https://github.com/openmeterio/openmeter/pull/4041
* feat(api): add charges list api http handler by @mark-vass-konghq in https://github.com/openmeterio/openmeter/pull/4103
* feat: implement realtime expand by @turip in https://github.com/openmeterio/openmeter/pull/4155
* feat: implement external payment endpoints by @turip in https://github.com/openmeterio/openmeter/pull/4158
* refactor: evaluating entitlement balance thresholds by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/4162
* feat(api): add update meter api spec by @mark-vass-konghq in https://github.com/openmeterio/openmeter/pull/4168
* feat: payment settlement by @turip in https://github.com/openmeterio/openmeter/pull/4154
* feat(api): UpdateMeter implementation by @mark-vass-konghq in https://github.com/openmeterio/openmeter/pull/4169
* feat: usagebased payment flows by @turip in https://github.com/openmeterio/openmeter/pull/4179
* feat(api): add-ons v3 by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/4138
* feat(api): add aip filters to meters api by @mark-vass-konghq in https://github.com/openmeterio/openmeter/pull/4170
* feat(features): add meter id filter option to the list endpoint by @borosr in https://github.com/openmeterio/openmeter/pull/4164
* feat(api): add csv support for v3 meter query by @tothandras in https://github.com/openmeterio/openmeter/pull/4196
* feat(features): add key and name filters and sort to the features list operation by @borosr in https://github.com/openmeterio/openmeter/pull/4204
* feat[charges]: skaffold progressive billing support by @turip in https://github.com/openmeterio/openmeter/pull/4203
* feat(api): add v3 list events endpoint by @tothandras in https://github.com/openmeterio/openmeter/pull/4211
* feat: short collection by @turip in https://github.com/openmeterio/openmeter/pull/4215
* feat(api): add validation errors to v3 ingested events by @tothandras in https://github.com/openmeterio/openmeter/pull/4222
* feat(charges): add tax code by @mark-vass-konghq in https://github.com/openmeterio/openmeter/pull/4237
* feat(api): add tax id and tax behavior to charges list api by @mark-vass-konghq in https://github.com/openmeterio/openmeter/pull/4263
* feat(billing): scaffold usage based charge lifecycle mapping by @turip in https://github.com/openmeterio/openmeter/pull/4297
* feat(api): update aip field filter types by @tothandras in https://github.com/openmeterio/openmeter/pull/4301
* feat(test) Charge tax config carryover by @mark-vass-konghq in https://github.com/openmeterio/openmeter/pull/4287
* chore: add credits api extensions by @turip in https://github.com/openmeterio/openmeter/pull/4311
* feat: app stripe credits support by @turip in https://github.com/openmeterio/openmeter/pull/4315
* feat: credit then invoice delete by @turip in https://github.com/openmeterio/openmeter/pull/4327
* feat: add extend support for usage-based charges [credit_then_invoice settlement mode] by @turip in https://github.com/openmeterio/openmeter/pull/4333
* feat(api): typed feature meter reference by @tothandras in https://github.com/openmeterio/openmeter/pull/4332
* feat(api): add v3 customer and subscription list filters by @tothandras in https://github.com/openmeterio/openmeter/pull/4336
* chore: usagebased credit-then-invoice [shrink] by @turip in https://github.com/openmeterio/openmeter/pull/4339
* chore: flat-fee run support by @turip in https://github.com/openmeterio/openmeter/pull/4350
* feat: add flat fee credit-then-invoice lifecycle by @turip in https://github.com/openmeterio/openmeter/pull/4351
* feat(credit_then_invoice): flat fee shrink/expand by @turip in https://github.com/openmeterio/openmeter/pull/4357
* refactor: add generic feature resolver with ratecard support by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/4353
### Bug Fixes 🐛
* fix(ent): 500 on negative value with V2 API by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/3870
* fix: invoiceline splitgroup is not marshalable by @turip in https://github.com/openmeterio/openmeter/pull/3875
* fix: fix cost-basis list api handler by @mark-vass-konghq in https://github.com/openmeterio/openmeter/pull/3924
* fix: regression in gathering invoice rendering by @turip in https://github.com/openmeterio/openmeter/pull/3939
* fix(plan): add validation for metered entitlement template by @tothandras in https://github.com/openmeterio/openmeter/pull/3946
* fix(api): delete encoders by @tothandras in https://github.com/openmeterio/openmeter/pull/3950
* fix(sink): tracing by @tothandras in https://github.com/openmeterio/openmeter/pull/3967
* fix(sink): fix flush error handling by @tothandras in https://github.com/openmeterio/openmeter/pull/3968
* fix: improve server timeout handling by @turip in https://github.com/openmeterio/openmeter/pull/3980
* fix(credit): snapshotting concurrency by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/3997
* fix(cost): query with not found llm cost by @hekike in https://github.com/openmeterio/openmeter/pull/4003
* fix(api): query accept header by @tothandras in https://github.com/openmeterio/openmeter/pull/4018
* fix(recurrence): increase max iter by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/4030
* fix: implement settlement mode in productcatalog by @turip in https://github.com/openmeterio/openmeter/pull/4026
* fix(feature): unit cost clear by @hekike in https://github.com/openmeterio/openmeter/pull/4046
* feat: round currencies to smallest denominator by @turip in https://github.com/openmeterio/openmeter/pull/4063
* fix(cost): return proper HTTP status codes from cost query endpoint by @hekike in https://github.com/openmeterio/openmeter/pull/4069
* chore: report validation errors as validation errors by @turip in https://github.com/openmeterio/openmeter/pull/4072
* fix: testcase timing by @turip in https://github.com/openmeterio/openmeter/pull/4074
* refactor(streaming): replace hand-rolled retry with backoff and jitter by @nicholas-sokolov in https://github.com/openmeterio/openmeter/pull/4050
* chore: fix review comment by @turip in https://github.com/openmeterio/openmeter/pull/4067
* fix: credit purchase adapter issues by @turip in https://github.com/openmeterio/openmeter/pull/4068
* fix: overwriting attrs for ValidationIssue by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/4107
* refactor: notification event handling by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/4141
* feat: invoice line persisting by @turip in https://github.com/openmeterio/openmeter/pull/4143
* fix: disallow cross fiat credit purchases by @turip in https://github.com/openmeterio/openmeter/pull/4165
* fix: grants service should not bypass charges service for now by @turip in https://github.com/openmeterio/openmeter/pull/4166
* fix(api): add continuationToken for event query by @tothandras in https://github.com/openmeterio/openmeter/pull/4163
* fix: replace fmt.Sprintf in slog Logger.Debug with structured key-value args by @mailtoboggavarapu-coder in https://github.com/openmeterio/openmeter/pull/4187
* fix: settle promotional credits by @turip in https://github.com/openmeterio/openmeter/pull/4192
* fix(api): v3 meter query path by @tothandras in https://github.com/openmeterio/openmeter/pull/4205
* fix: collection period behavior should match API docs by @turip in https://github.com/openmeterio/openmeter/pull/4212
* fix: collect leftover invoices too by @turip in https://github.com/openmeterio/openmeter/pull/4216
* feat(usagebased-charge): ignore minimum commitment on partial runs by @turip in https://github.com/openmeterio/openmeter/pull/4219
* fix(ledger): repo use tx by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/4238
* fix(api): parsing of custom string types by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/4180
* fix(meteredentitlement): fix extra grant recurrences on in-period activity changes by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/4252
* fix(balanceworker): skip events that dont match meters by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/4279
* fix(entitlement): fix grant recurrence on period start by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/4278
* fix(api): v3 resource mixin required created_at and updated_at by @tothandras in https://github.com/openmeterio/openmeter/pull/4295
* fix: totalAvailableGrantAmount by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/4304
* fix(api): API multiple filters by @tothandras in https://github.com/openmeterio/openmeter/pull/4322
* fix: properly soft delete app customer and app stripe customer associations upon customer delete by @gergely-kurucz-konghq in https://github.com/openmeterio/openmeter/pull/4325
* fix: resolving feature by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/4338
* fix: usage based ratecard validation by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/4331
* fix: validating ratecard with feature by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/4352
* fix(balanceworker): subject lookup by @tothandras in https://github.com/openmeterio/openmeter/pull/4356
* fix: properly soft delete app custom invoicing customer associations upon customer delete [OM-357] by @gergely-kurucz-konghq in https://github.com/openmeterio/openmeter/pull/4344
* fix: keep charge invoice updates charge-owned by @turip in https://github.com/openmeterio/openmeter/pull/4354
* fix: flaky test by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/4361
* fix(filter): fix FilterULID select implementations by @tothandras in https://github.com/openmeterio/openmeter/pull/4368
* fix(customer): list customers for default billing profile when filtered by @tothandras in https://github.com/openmeterio/openmeter/pull/4369
* feat: fix prorating credit corrections by @turip in https://github.com/openmeterio/openmeter/pull/4363
* fix: credit-then-invoice discount sync by @turip in https://github.com/openmeterio/openmeter/pull/4376
### Breaking Changes 🛠
* chore: restrict period changes for subscription managed lines by @turip in https://github.com/openmeterio/openmeter/pull/3865
### Dependency Updates ⬆️
* chore(deps): bump google.golang.org/grpc from 1.78.0 to 1.79.3 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3971
* chore(deps): bump github.com/invopop/gobl from 0.306.0 to 0.307.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3838
* chore(deps): bump github.com/ClickHouse/ch-go from 0.70.0 to 0.71.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3844
* chore(deps): bump github.com/go-git/go-git/v5 from 5.16.5 to 5.17.1 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4038
* chore(deps): bump github.com/go-jose/go-jose/v4 from 4.1.3 to 4.1.4 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4076
* chore(deps): bump aiohttp from 3.13.3 to 3.13.4 in /api/client/python by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4056
* chore(deps): bump go.opentelemetry.io/proto/otlp from 1.9.0 to 1.10.0 in the otel group across 1 directory by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4043
* chore(deps): bump k8s.io/klog/v2 from 2.130.1 to 2.140.0 in the k8s group across 1 directory by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4033
* chore(deps): bump github.com/ClickHouse/clickhouse-go/v2 from 2.42.0 to 2.43.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3850
* chore(deps): bump github.com/golang-jwt/jwt/v5 from 5.3.0 to 5.3.1 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3845
* chore(deps): bump github.com/zeebo/xxh3 from 1.0.2 to 1.1.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3835
* chore(deps): bump github.com/oliveagle/jsonpath from 0.1.0 to 0.1.4 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3827
* chore(deps): bump github.com/IBM/sarama from 1.46.3 to 1.47.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4089
* chore(deps): bump github.com/brunoga/deep from 1.2.5 to 1.3.1 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4090
* chore(deps): bump github.com/go-co-op/gocron/v2 from 2.19.0 to 2.19.1 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3846
* chore(deps): bump github.com/svix/svix-webhooks from 1.84.1 to 1.89.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4091
* chore(deps): bump github.com/oapi-codegen/runtime from 1.2.0 to 1.3.1 in the oapi-codegen group across 1 directory by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4087
* chore(deps): bump the samber group with 2 updates by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4086
* chore(deps): bump the redis group with 2 updates by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/3834
* chore(deps): bump aiohttp from 3.13.3 to 3.13.4 in /api/client/python/examples by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4057
* chore(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.83.0 to 1.97.3 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4096
* chore(deps): bump google.golang.org/grpc from 1.79.3 to 1.80.0 in the googlecloud group by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4098
* chore(deps): bump github.com/go-resty/resty/v2 from 2.17.1 to 2.17.2 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4102
* chore(deps): bump github.com/invopop/gobl from 0.307.0 to 0.309.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4101
* chore(deps): bump github.com/aws/aws-sdk-go-v2/service/kinesis from 1.35.3 to 1.43.5 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4093
* chore(deps): bump github.com/aws/aws-sdk-go-v2/service/lambda from 1.72.0 to 1.88.5 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4094
* chore(deps): bump github.com/alpacahq/alpacadecimal from 0.0.8 to 0.0.9 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4099
* chore(deps): bump github.com/getkin/kin-openapi from 0.133.0 to 0.134.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4088
* chore(deps): bump github.com/lmittmann/tint from 1.1.2 to 1.1.3 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4109
* chore(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp from 1.37.0 to 1.43.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4104
* chore(deps): bump github.com/XSAM/otelsql from 0.41.0 to 0.42.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4110
* chore(deps): bump github.com/jackc/pgx/v5 from 5.8.0 to 5.9.1 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4113
* chore(deps): bump github.com/go-chi/chi/v5 from 5.2.4 to 5.2.5 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4114
* chore(deps): bump github.com/go-openapi/inflect from 0.21.0 to 0.21.5 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4111
* chore(deps): bump github.com/huandu/go-sqlbuilder from 1.39.0 to 1.40.1 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4112
* chore(deps): bump the otel group with 7 updates by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4120
* chore(deps): bump github.com/qmuntal/stateless from 1.7.2 to 1.8.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4122
* chore(deps): bump github.com/wI2L/jsondiff from 0.7.0 to 0.7.1 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4124
* chore(deps): bump github.com/go-co-op/gocron/v2 from 2.19.1 to 2.20.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4125
* chore(deps): bump the otel group with 3 updates by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4137
* chore(deps): bump github.com/rickb777/period from 1.0.22 to 1.0.27 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4132
* chore(deps): bump github.com/svix/svix-webhooks from 1.89.0 to 1.90.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4126
* chore(deps): bump golang.org/x/text from 0.35.0 to 0.36.0 in the golang group across 1 directory by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4151
* chore(deps): bump github.com/oapi-codegen/runtime from 1.3.1 to 1.4.0 in the oapi-codegen group across 1 directory by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4152
* chore(deps): bump github.com/go-git/go-git/v5 from 5.17.1 to 5.18.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4171
* chore(deps): bump github.com/huandu/go-sqlbuilder from 1.40.1 to 1.40.2 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4140
* chore(deps): bump github.com/go-co-op/gocron/v2 from 2.20.0 to 2.21.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4195
* chore(deps): bump github.com/invopop/gobl from 0.309.0 to 0.400.1 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4208
* chore(deps): bump k8s.io/apimachinery from 0.35.3 to 0.35.4 in the k8s group by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4207
* chore(deps): bump github.com/jackc/pgx/v5 from 5.9.1 to 5.9.2 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4210
* chore(deps): bump github.com/ClickHouse/clickhouse-go/v2 from 2.43.0 to 2.45.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4183
* chore(deps): bump github.com/confluentinc/confluent-kafka-go/v2 from 2.13.0 to 2.14.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4123
* chore(deps): bump entgo.io/ent from 0.14.5 to 0.14.6 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4121
* chore(deps): bump github.com/getkin/kin-openapi from 0.134.0 to 0.135.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4153
* chore(deps): bump github.com/confluentinc/confluent-kafka-go/v2 from 2.14.0 to 2.14.1 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4214
* chore(deps): bump the k8s group with 2 updates by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4213
* chore(deps): bump github.com/invopop/gobl from 0.400.1 to 0.401.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4241
* chore(deps): bump the redis group with 2 updates by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4289
* chore(deps): bump github.com/svix/svix-webhooks from 1.90.0 to 1.92.2 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4261
* chore(deps): bump github.com/IBM/sarama from 1.47.0 to 1.48.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4265
* chore(deps): bump github.com/go-co-op/gocron/v2 from 2.21.0 to 2.21.1 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4247
* chore(deps): bump github.com/getkin/kin-openapi from 0.135.0 to 0.137.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4290
* chore(deps): bump google.golang.org/grpc from 1.80.0 to 1.81.0 in the googlecloud group by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4345
* chore(deps): bump github.com/ClickHouse/clickhouse-go/v2 from 2.45.0 to 2.46.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4347
* chore(deps): bump github.com/huandu/go-sqlbuilder from 1.40.2 to 1.41.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4346
* chore(deps): bump github.com/invopop/gobl from 0.401.0 to 0.402.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4316
* chore(deps): bump github.com/go-git/go-git/v5 from 5.18.0 to 5.19.0 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4341
* chore(deps): bump github.com/IBM/sarama from 1.48.0 to 1.48.1 by @dependabot[bot] in https://github.com/openmeterio/openmeter/pull/4380
### Other Changes
* feat: refactor getInvoiceByID by @turip in https://github.com/openmeterio/openmeter/pull/3863
* fix: subscription sync do not reuse old lines by @turip in https://github.com/openmeterio/openmeter/pull/3874
* refactor: invoice pending lines by @turip in https://github.com/openmeterio/openmeter/pull/3880
* chore: truncate now for created_at and updated_at by @turip in https://github.com/openmeterio/openmeter/pull/3895
* feat: charges v2 by @turip in https://github.com/openmeterio/openmeter/pull/3894
* feat: base support for billing credits by @turip in https://github.com/openmeterio/openmeter/pull/3901
* chore(api): update oapi-codegen to v2.6.0 by @tothandras in https://github.com/openmeterio/openmeter/pull/3906
* chore: address late comment by @turip in https://github.com/openmeterio/openmeter/pull/3913
* feat[charges]: flat fee charges happy path by @turip in https://github.com/openmeterio/openmeter/pull/3896
* chore(api): update typespec by @tothandras in https://github.com/openmeterio/openmeter/pull/3921
* refactor: totals mixins v2 by @turip in https://github.com/openmeterio/openmeter/pull/3940
* refactor: split charges by @turip in https://github.com/openmeterio/openmeter/pull/3943
* chore: remap log attributes  by @mark-vass-konghq in https://github.com/openmeterio/openmeter/pull/3957
* chore(api): update meter query spec by removing explicit special fiel… by @tothandras in https://github.com/openmeterio/openmeter/pull/3964
* feat: add support for limiting queries by stored_at by @turip in https://github.com/openmeterio/openmeter/pull/3965
* feat: skaffold usagebased charge by @turip in https://github.com/openmeterio/openmeter/pull/3952
* refactor: reusable pricer by @turip in https://github.com/openmeterio/openmeter/pull/3969
* feat: credit purchase invoice by @turip in https://github.com/openmeterio/openmeter/pull/3961
* feat: improve substate storage for usagebased items by @turip in https://github.com/openmeterio/openmeter/pull/3979
* chore: fix method naming by @turip in https://github.com/openmeterio/openmeter/pull/3984
* chore: update package dependencies by @tothandras in https://github.com/openmeterio/openmeter/pull/3989
* chore: add github API skill for agents by @hekike in https://github.com/openmeterio/openmeter/pull/3990
* chore: separate go lint scripts by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/3933
* feat: usage based charges lifecycle by @turip in https://github.com/openmeterio/openmeter/pull/3955
* refactor: subscription sync pt.1 by @turip in https://github.com/openmeterio/openmeter/pull/4012
* Feat/productcatalog v3 plan by @rolosp in https://github.com/openmeterio/openmeter/pull/4010
* feat(credit): integration tests by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/4007
* chore: migrate to golang tracer instead of openmetrics in prometheus by @mark-vass-konghq in https://github.com/openmeterio/openmeter/pull/3959
* refactor: implement target state item by @turip in https://github.com/openmeterio/openmeter/pull/4021
* refactor: prepare for charges integration by @turip in https://github.com/openmeterio/openmeter/pull/4023
* chore: flatfee prorating is owned by flat fee service by @turip in https://github.com/openmeterio/openmeter/pull/4025
* feat(ledger): negative credit by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/4036
* feat: flat fee delete patch support by @turip in https://github.com/openmeterio/openmeter/pull/4031
* feat: usage based patching by @turip in https://github.com/openmeterio/openmeter/pull/4053
* feat: add wire for charges by @turip in https://github.com/openmeterio/openmeter/pull/4058
* chore: normalize charge timestamps by @turip in https://github.com/openmeterio/openmeter/pull/4060
* fix: invoice pending lines via charges by @turip in https://github.com/openmeterio/openmeter/pull/4059
* feat: charges advancer by @turip in https://github.com/openmeterio/openmeter/pull/4065
* chore: support effective at on stdinvoice by @turip in https://github.com/openmeterio/openmeter/pull/4071
* chore: noop init by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/4070
* feat: persist feature by @turip in https://github.com/openmeterio/openmeter/pull/4077
* chore: regenerate venv by @turip in https://github.com/openmeterio/openmeter/pull/4092
* feat: invocie line backend pt.1 by @turip in https://github.com/openmeterio/openmeter/pull/4100
* refactor: labels support by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/4118
* fix: adjust flat-fee shape to match usage-based by @turip in https://github.com/openmeterio/openmeter/pull/4128
* fix: creditpurchase shape by @turip in https://github.com/openmeterio/openmeter/pull/4129
* chore: refactor state machines by @turip in https://github.com/openmeterio/openmeter/pull/4133
* chore: improve entitlement lookup performance by @turip in https://github.com/openmeterio/openmeter/pull/4149
* feat(ledger): transaction listing API by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/4147
* fix: annotations usage by @turip in https://github.com/openmeterio/openmeter/pull/4150
* feat[charges]: common state machine operations by @turip in https://github.com/openmeterio/openmeter/pull/4145
* chore: update npm dependencies by @tothandras in https://github.com/openmeterio/openmeter/pull/4161
* fix(api): pass settlementmode to api by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/4181
* fix(ledger): api balance by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/4185
* chore: remove dagger by @tothandras in https://github.com/openmeterio/openmeter/pull/4173
* feat: make detailed lines reusable by @turip in https://github.com/openmeterio/openmeter/pull/4186
* feat(backfill): write backfill by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/4193
* fix(ledger): use correct RouteFilter by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/4197
* chore: fix-unique reference by @turip in https://github.com/openmeterio/openmeter/pull/4198
* feat: persist detailed lines by @turip in https://github.com/openmeterio/openmeter/pull/4202
* feat: add session level lockr by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/4189
* feat(api): better transaction list API by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/4209
* test(api): added v3 product catalog e2e tests by @rolosp in https://github.com/openmeterio/openmeter/pull/4201
* fix: use shared cursoring type by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/4217
* chore: rework run snapshotting by @turip in https://github.com/openmeterio/openmeter/pull/4226
* feat: prior run values by @turip in https://github.com/openmeterio/openmeter/pull/4227
* refactor: reconcile events in parallel by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/4178
* chore: update spec dependencies by @tothandras in https://github.com/openmeterio/openmeter/pull/4229
* feat(productcatalog): expose taxCodeId in taxConfig API by @borbelyr-kong in https://github.com/openmeterio/openmeter/pull/4224
* chore: detailed line conversion owned by rating by @turip in https://github.com/openmeterio/openmeter/pull/4254
* feat: detailed line persisted flag by @turip in https://github.com/openmeterio/openmeter/pull/4255
* feat(spec): V3 visibility and summary updates by @tothandras in https://github.com/openmeterio/openmeter/pull/4256
* refactor: list entitlements for ingested events by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/4259
* refactor: locking for notification envent handler by @chrisgacsal in https://github.com/openmeterio/openmeter/pull/4269
* refactor(ledger): correct settlement accounting by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/4236
* refactor(ledger): account pkg cleanup by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/4286
* feat(api): add organization tax config by @borbelyr-kong in https://github.com/openmeterio/openmeter/pull/4280
* feat(api): add organization default tax codes schema and migration by @borbelyr-kong in https://github.com/openmeterio/openmeter/pull/4294
* test: add cross cutting smoke test for a product catalog flow by @rolosp in https://github.com/openmeterio/openmeter/pull/4296
* feat: persist invoice id for ubp runs by @turip in https://github.com/openmeterio/openmeter/pull/4306
* feat(billing): add delta usage rating engine by @turip in https://github.com/openmeterio/openmeter/pull/4298
* feat(billing): add mutable line deletion hook by @turip in https://github.com/openmeterio/openmeter/pull/4317
* chore: allow negative detailed lines by @turip in https://github.com/openmeterio/openmeter/pull/4314
* feat(taxcode): add organization default tax codes service and refactor to taxcode.Service by @borbelyr-kong in https://github.com/openmeterio/openmeter/pull/4308
* feat(taxcode): add organization default tax codes HTTP handlers by @borbelyr-kong in https://github.com/openmeterio/openmeter/pull/4320
* feat: oapi response validator by @rolosp in https://github.com/openmeterio/openmeter/pull/4283
* chore: add flat fee run db tables by @turip in https://github.com/openmeterio/openmeter/pull/4349
* feat(api): add governance query operation by @tothandras in https://github.com/openmeterio/openmeter/pull/4329
* chore(helm): update images by @tothandras in https://github.com/openmeterio/openmeter/pull/4324
* refactor: ledger collection by @GAlexIHU in https://github.com/openmeterio/openmeter/pull/4343
* fix: subscription sync zero prorating cases (6/35) by @turip in https://github.com/openmeterio/openmeter/pull/4364

## New Contributors
* @borbelyr-kong made their first contribution in https://github.com/openmeterio/openmeter/pull/3885
* @rolosp made their first contribution in https://github.com/openmeterio/openmeter/pull/3972
* @nicholas-sokolov made their first contribution in https://github.com/openmeterio/openmeter/pull/4050
* @mailtoboggavarapu-coder made their first contribution in https://github.com/openmeterio/openmeter/pull/4187
* @borosr made their first contribution in https://github.com/openmeterio/openmeter/pull/4164
* @vsengar-79 made their first contribution in https://github.com/openmeterio/openmeter/pull/4275

**Full Changelog**: https://github.com/openmeterio/openmeter/compare/v1.0.0-beta.227...v1.0.0-beta.228