Skip to content

Release v4.24.0#137

Merged
cb-alish merged 2 commits into
masterfrom
release-v4.24.0
Jul 21, 2026
Merged

Release v4.24.0#137
cb-alish merged 2 commits into
masterfrom
release-v4.24.0

Conversation

@cb-alish

@cb-alish cb-alish commented Jul 21, 2026

Copy link
Copy Markdown
Collaborator

v4.24.0 (2026-07-21)

New Resources:

New Attributes:

New Parameters:

Parameter Updates:

New Events:

Deleted Attributes:

New Enums:

  • real_time_payments has been added as a new value enum DunningType.
  • payment_source_business_entity_changed has been added as a new value enum EventType.
  • paynow, bizum, and promptpay have been added as new values enum PaymentMethod.
  • paynow, bizum, and promptpay have been added as new values enum PaymentMethodType.
  • active, archived, and deleted have been added as new values enum Status.
  • zero_rated, region_non_taxable, product_exempt, high_value_physical_goods, zero_value_item, and tax_not_configured_external_provider have been added as new values enum TaxOverrideReason.
  • paynow, bizum, promptpay, simple, compound, and spend_exceeded have been added as new values enum Type.
  • success and failed have been added as new values to enum attribute status in AsyncResponse.
  • number and string have been added as new values to enum attribute data_type in ColumnDefinition.
  • simple and compound have been added as new values to enum attribute type in Meter.
  • active, archived, and deleted have been added as new values to enum attribute status in Meter.
  • paynow, bizum, and promptpay have been added as new values to enum attribute payment_method_type in PaymentIntent.
  • paynow, bizum, and promptpay have been added as new values to enum attribute active_payment_attempt.payment_method_type in PaymentIntent.
  • cb_js, components_fields, checkout_v3, paynow_v3, portal_v3, gift_v3, checkout_v4, payment_component, pc_inapp_v4, and pc_fpc_v4 have been added as new values to enum attribute payment_intent_metadata.source in PaymentIntent.
  • adjusted_term, service_period_revision, delta, and reset have been added as new values to enum request body parameter line_items.proration_mode in import_credit_note of CreditNote.
  • true and false have been added as new values to enum query parameter metered.is in list_features of Feature.
  • adjusted_term, service_period_revision, delta, and reset have been added as new values to enum request body parameter line_items.proration_mode in import_invoice of Invoice.
  • updated_at, name, created_at, and id have been added as new values to enum query parameter sort_by.asc in list_all_available_meters of Meter.
  • updated_at, name, created_at, and id have been added as new values to enum query parameter sort_by.desc in list_all_available_meters of Meter.
  • number and string have been added as new values to enum request body parameter column_definitions.data_type in create_a_metered_feature of MeteredFeature.
  • paynow, bizum, and promptpay have been added as new values to enum request body parameter payment_method_type in update_a_payment_intent of PaymentIntent.
  • paynow, bizum, and promptpay have been added as new values to enum request body parameter payment_method_type in create_a_payment_intent of PaymentIntent.
  • true and false have been added as new values to enum query parameter decommissioned.is in list_subscriptions of Subscription.

Release v4.24.0 adds AsyncResponse* and metering resources (meter, metered feature) plus meter/metered-feature APIs. It expands alert/invoice/credit-note attributes (exchange_rates, proration_mode, thresholds, entity_description) and request filters, introduces a webhook event, removes LedgerOperation balances, and updates enums and version/changelog.

@snyk-io

snyk-io Bot commented Jul 21, 2026

Copy link
Copy Markdown

Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
Code Security 0 0 0 0 0 issues
Secrets 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@coderabbitai

coderabbitai Bot commented Jul 21, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Enterprise

Run ID: 894b4be1-e983-4af0-8263-251eb975f14c

📥 Commits

Reviewing files that changed from the base of the PR and between a103dd9 and 34e6c10.

📒 Files selected for processing (1)
  • src/ValueObjects/APIRequester.php

Walkthrough

Version 4.24.0 adds metering resources and actions, asynchronous response models, new nested resource fields, proration and exchange-rate support, expanded enums, updated request documentation, and removal of two ledger balance attributes.

Changes

API contracts and release metadata

Layer / File(s) Summary
Release metadata, enums, and request contracts
CHANGELOG.md, VERSION, src/Actions/..., src/Enums/...
The release is updated to 4.24.0 with new documented request fields, filters, webhook events, enum values, and resource changes. Meter and metered-feature action contracts are added.

New and extended resource models

Layer / File(s) Summary
New and extended resource models
src/Resources/Alert/*, src/Resources/AsyncResponse/*, src/Resources/ColumnDefinition/*, src/Resources/Content/Content.php, src/Resources/PaymentIntent/*
New nested resources and enums support alerts, asynchronous responses, column definitions, payment-intent metadata, and additional content fields with from() and toArray() mappings.

Existing resource schema updates

Layer / File(s) Summary
Existing resource schema updates
src/Resources/CreditNote/*, src/Resources/Invoice/*, src/Resources/Quote*/**, src/Resources/LedgerOperation/*, src/Resources/Ramp/*, src/Resources/Feature/*, src/Resources/QuotedCharge/*
Existing resources gain exchange rates, proration modes, descriptions, metering, discount quantities, and mixed metadata; LedgerOperation removes start_balance and end_balance.

Meter and metered-feature API flow

Layer / File(s) Summary
Meter and metered feature API flow
src/Actions/Meter*, src/Actions/Contracts/Meter*, src/Responses/Meter*, src/Responses/MeteredFeature*, src/ChargebeeClient.php
Meter listing and metered-feature lifecycle operations build API requests, map responses into typed resources, and become available through new client accessors.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Client
  participant ChargebeeClient
  participant MeteredFeatureActions
  participant APIRequester
  participant ResponseModel
  Client->>ChargebeeClient: access meter or meteredFeature actions
  ChargebeeClient->>MeteredFeatureActions: construct with HTTP client and environment
  Client->>MeteredFeatureActions: invoke lifecycle operation
  MeteredFeatureActions->>APIRequester: send POST request
  APIRequester-->>MeteredFeatureActions: return response data and headers
  MeteredFeatureActions->>ResponseModel: build typed response
  ResponseModel-->>Client: return serialized resource response
Loading
🚥 Pre-merge checks | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 22.73% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/Resources/Alert/Alert.php`:
- Around line 60-64: Update the Alert model’s threshold property and its related
parsing/serialization logic to use a single nullable Threshold object rather
than an array. Remove array_map handling that treats scalar mode/value fields as
arrays, and update the corresponding occurrences in the Alert response paths
while preserving nullable threshold behavior.

In `@src/Resources/CreditNote/LineItem.php`:
- Around line 156-160: Update LineItem in src/Resources/CreditNote/LineItem.php
and src/Resources/CreditNoteEstimate/LineItem.php: type proration_mode as
LineItemProrationMode, convert incoming values with
LineItemProrationMode::tryFromValue() in from(), and serialize using the enum’s
value. Apply the same change at both listed sites so the UNKNOWN fallback is
used consistently.

In `@src/Resources/MeteredFeature/MeteredFeature.php`:
- Around line 42-52: Update the MeteredFeature type and status handling across
the MeteredFeature class, including its properties, constructor parameters, and
from() conversions, to use MeteredFeature\Enums\FeatureType and
MeteredFeature\Enums\FeatureStatus instead of the global Type and Status enums.
Preserve the existing nullable behavior and deserialization flow.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Enterprise

Run ID: dafe26eb-dfd5-4b3a-92d0-4274fdeabce1

📥 Commits

Reviewing files that changed from the base of the PR and between ebfec77 and a103dd9.

📒 Files selected for processing (100)
  • CHANGELOG.md
  • VERSION
  • src/Actions/AlertActions.php
  • src/Actions/Contracts/AlertActionsInterface.php
  • src/Actions/Contracts/CreditNoteActionsInterface.php
  • src/Actions/Contracts/EstimateActionsInterface.php
  • src/Actions/Contracts/ExportActionsInterface.php
  • src/Actions/Contracts/FeatureActionsInterface.php
  • src/Actions/Contracts/InvoiceActionsInterface.php
  • src/Actions/Contracts/ItemActionsInterface.php
  • src/Actions/Contracts/ItemFamilyActionsInterface.php
  • src/Actions/Contracts/ItemPriceActionsInterface.php
  • src/Actions/Contracts/MeterActionsInterface.php
  • src/Actions/Contracts/MeteredFeatureActionsInterface.php
  • src/Actions/Contracts/PriceVariantActionsInterface.php
  • src/Actions/Contracts/RampActionsInterface.php
  • src/Actions/Contracts/RecordedPurchaseActionsInterface.php
  • src/Actions/Contracts/SubscriptionActionsInterface.php
  • src/Actions/CreditNoteActions.php
  • src/Actions/EstimateActions.php
  • src/Actions/ExportActions.php
  • src/Actions/FeatureActions.php
  • src/Actions/InvoiceActions.php
  • src/Actions/ItemActions.php
  • src/Actions/ItemFamilyActions.php
  • src/Actions/ItemPriceActions.php
  • src/Actions/MeterActions.php
  • src/Actions/MeteredFeatureActions.php
  • src/Actions/PriceVariantActions.php
  • src/Actions/RampActions.php
  • src/Actions/RecordedPurchaseActions.php
  • src/Actions/SubscriptionActions.php
  • src/ChargebeeClient.php
  • src/Enums/DunningType.php
  • src/Enums/EnabledEvents.php
  • src/Enums/EventType.php
  • src/Enums/PaymentMethod.php
  • src/Enums/PaymentMethodType.php
  • src/Enums/Status.php
  • src/Enums/TaxOverrideReason.php
  • src/Enums/Type.php
  • src/Resources/Alert/Alert.php
  • src/Resources/Alert/Enums/FilterConditionField.php
  • src/Resources/Alert/Enums/FilterConditionOperator.php
  • src/Resources/Alert/FilterCondition.php
  • src/Resources/Alert/Threshold.php
  • src/Resources/AsyncResponse/AsyncResponse.php
  • src/Resources/AsyncResponse/Enums/Status.php
  • src/Resources/AsyncResponse/Error.php
  • src/Resources/AsyncResponse/RequestAsyncApi.php
  • src/Resources/AsyncResponseList/AsyncResponseList.php
  • src/Resources/AsyncResponseList/Enums/AsyncResponseStatus.php
  • src/Resources/ColumnDefinition/ColumnDefinition.php
  • src/Resources/ColumnDefinition/Enums/DataType.php
  • src/Resources/Content/Content.php
  • src/Resources/CreditNote/CreditNote.php
  • src/Resources/CreditNote/Enums/LineItemProrationMode.php
  • src/Resources/CreditNote/ExchangeRate.php
  • src/Resources/CreditNote/LineItem.php
  • src/Resources/CreditNoteEstimate/Enums/LineItemProrationMode.php
  • src/Resources/CreditNoteEstimate/LineItem.php
  • src/Resources/Feature/Feature.php
  • src/Resources/GrantBlock/GrantBlock.php
  • src/Resources/Invoice/Enums/LineItemProrationMode.php
  • src/Resources/Invoice/ExchangeRate.php
  • src/Resources/Invoice/Invoice.php
  • src/Resources/Invoice/LineItem.php
  • src/Resources/InvoiceEstimate/Enums/LineItemProrationMode.php
  • src/Resources/InvoiceEstimate/LineItem.php
  • src/Resources/LedgerOperation/LedgerOperation.php
  • src/Resources/Meter/Enums/ColumnDefinitionDataType.php
  • src/Resources/Meter/Enums/FeatureStatus.php
  • src/Resources/Meter/Enums/FeatureType.php
  • src/Resources/Meter/Enums/Status.php
  • src/Resources/Meter/Enums/Type.php
  • src/Resources/Meter/Meter.php
  • src/Resources/MeteredFeature/Enums/ColumnDefinitionDataType.php
  • src/Resources/MeteredFeature/Enums/FeatureStatus.php
  • src/Resources/MeteredFeature/Enums/FeatureType.php
  • src/Resources/MeteredFeature/MeteredFeature.php
  • src/Resources/PaymentIntent/Enums/PaymentIntentMetadataSource.php
  • src/Resources/PaymentIntent/Enums/PaymentMethodType.php
  • src/Resources/PaymentIntent/PaymentIntent.php
  • src/Resources/PaymentIntent/PaymentIntentMetadata.php
  • src/Resources/PromotionalGrant/PromotionalGrant.php
  • src/Resources/Quote/Enums/LineItemProrationMode.php
  • src/Resources/Quote/LineItem.php
  • src/Resources/QuoteLineGroup/Enums/LineItemProrationMode.php
  • src/Resources/QuoteLineGroup/LineItem.php
  • src/Resources/QuotedCharge/Charge.php
  • src/Resources/QuotedCharge/InvoiceItem.php
  • src/Resources/Ramp/DiscountsToAdd.php
  • src/Resources/Ramp/Enums/DiscountsToAddType.php
  • src/Responses/MeterResponse/ListMeterResponse.php
  • src/Responses/MeterResponse/ListMeterResponseListObject.php
  • src/Responses/MeteredFeatureResponse/ArchiveMeteredFeatureResponse.php
  • src/Responses/MeteredFeatureResponse/CreateMeteredFeatureResponse.php
  • src/Responses/MeteredFeatureResponse/DeleteMeteredFeatureResponse.php
  • src/Responses/MeteredFeatureResponse/ReactivateMeteredFeatureResponse.php
  • src/Version.php

Comment thread src/Resources/Alert/Alert.php
Comment thread src/Resources/CreditNote/LineItem.php
Comment thread src/Resources/MeteredFeature/MeteredFeature.php
cb-karthikp
cb-karthikp previously approved these changes Jul 21, 2026
@cb-alish
cb-alish merged commit 35031fc into master Jul 21, 2026
4 checks passed
@cb-alish
cb-alish deleted the release-v4.24.0 branch July 21, 2026 09:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants