Skip to content

Releases: maxio-com/ab-php-sdk

Release 9.0.0

13 Mar 15:45
56cc76b

Choose a tag to compare

Changelog: v9.0.0

Breaking Changes

  • SnapDay enum removed — The SnapDay class (which contained a single value END = 'end') has been deleted. The SubscriptionSnapDay container has also been removed. Subscription.snapDay is now typed as ?string. CalendarBilling.snapDay and UpdateSubscription.snapDay now accept string|int directly without SnapDay enum validation.
  • ComponentPricePointsController::readComponentPricePoint() return type changed — Now returns ComponentPricePointCurrencyOverageResponse instead of ComponentPricePointResponse.
  • CreateAllocation: credit type factory classes changed — The $downgradeCredit property now uses DowngradeCreditCreditType::checkValue and the $upgradeCharge property now uses UpgradeChargeCreditType::checkValue, replacing the previous shared CreditType::checkValue factory. Code that passes CreditType values for these fields must switch to the new dedicated enum types.
  • upgradeCharge / downgradeCredit doc comments removed from multiple models — The inline Available values: 'full', 'prorated', 'none'. comment was removed from getter/setter docblocks on AllocateComponents, Allocation, AllocationPreviewItem, AllocationSettings, Component, OnOffComponent, PrepaidUsageComponent, QuantityBasedComponent, SubscriptionComponent, PreviewAllocationsRequest, and UpdateComponent. No runtime behavior change, but IDE hints may differ.
  • Custom price point limit enforcedCreateSubscription, UpdateSubscription, SubscriptionCustomPrice, and SubscriptionGroupSignupItem now document a maximum of 30 custom price points per subscription; exceeding this limit returns an API error.

New Features

  • New SubscriptionRenewalsController — Full CRUD for scheduled renewal configurations, accessed via AdvancedBillingClient::getSubscriptionRenewalsController(). Endpoints include:
    • createScheduledRenewalConfiguration() — Create a scheduled renewal configuration for a subscription
    • listScheduledRenewalConfigurations() — List configurations with optional status filter
    • readScheduledRenewalConfiguration() — Read a single configuration
    • updateScheduledRenewalConfiguration() — Update an existing configuration
    • scheduleScheduledRenewalLockIn() — Schedule a future lock-in date
    • lockInScheduledRenewalImmediately() — Lock in a renewal immediately
    • unpublishScheduledRenewalConfiguration() — Return a configuration to editable state
    • cancelScheduledRenewalConfiguration() — Cancel a scheduled renewal configuration
    • createScheduledRenewalConfigurationItem() — Add product/component line items
    • updateScheduledRenewalConfigurationItem() — Update an existing line item
    • deleteScheduledRenewalConfigurationItem() — Remove a line item
  • ComponentPricePointsController::cloneComponentPricePoint() — New endpoint to clone an existing component price point
  • ProformaInvoicesController::deliverProformaInvoice() — New endpoint to deliver a proforma invoice via email
  • issue_invoice now supports "draft" status — The endpoint can now issue invoices that are in both "pending" and "draft" status.

New Models

  • AvailableActions
  • CloneComponentPricePoint
  • CloneComponentPricePointRequest
  • ComponentPricePointCurrencyOverageResponse
  • Contract
  • CurrencyOveragePrices
  • DeliverProformaInvoiceRequest
  • DowngradeCreditCreditType (enum)
  • Register
  • ScheduledRenewalComponentCustomPrice
  • ScheduledRenewalConfiguration
  • ScheduledRenewalConfigurationItem
  • ScheduledRenewalConfigurationItemRequest
  • ScheduledRenewalConfigurationItemResponse
  • ScheduledRenewalConfigurationRequest
  • ScheduledRenewalConfigurationRequestBody
  • ScheduledRenewalConfigurationResponse
  • ScheduledRenewalConfigurationsResponse
  • ScheduledRenewalItemRequestBodyComponent
  • ScheduledRenewalItemRequestBodyProduct
  • ScheduledRenewalLockInRequest
  • ScheduledRenewalProductPricePoint
  • ScheduledRenewalUpdateRequest
  • SendEmail
  • Status (enum)
  • UpgradeChargeCreditType (enum)

Model Enhancements

  • CancellationOptions — New optional properties: $cancelAtEndOfPeriod (?bool), $scheduledCancellationAt (?\DateTime), $refundPrepaymentAccountBalance (?bool)
  • ComponentCustomPrice — New optional properties: $listPricePointId (?int), $useDefaultListPrice (?bool)
  • CreateAllocation — New optional properties: $decimalQuantity (?string), $previousQuantity (?float), $decimalPreviousQuantity (?string), $customPrice (?ComponentCustomPrice)
  • ProductFamily — New optional property: $archivedAt (?\DateTime)
  • ProformaInvoice — New optional property: $availableActions (?AvailableActions)
  • SendInvoiceRequest — New optional property: $attachmentUrls (?string[], max 10 files, 10 MB each)
  • SubscriptionGroup — New optional property: $uid (?string)
  • SubscriptionSort — New enum values: TOTAL_PAYMENTS, ID, OPEN_BALANCE, EXPIRES_AT

Internal / Non-functional Changes

  • Bumped apimatic/core dependency from ~0.3.16 to ~0.3.17
  • SDK user-agent version string updated from 8.0.0 to 9.0.0
  • Branding updates throughout documentation: "Chargify" references replaced with "Advanced Billing"
  • Documentation improvements across all controller and model docblocks

8.0.0

10 Dec 12:53

Choose a tag to compare

What's Changed

Full Changelog: 7.0.1...8.0.0

[FND-138] Release 7.0.1 (#69)

12 Sep 09:30
201c66f

Choose a tag to compare

📝 Changelog: API Documentation Updates

We've made several updates to the API documentation to improve clarity, consistency, and accuracy. This release includes enhancements to the descriptions for various endpoints, corrections to example data, and updates to external links.


🌐 Webhooks API Improvements

  • Simplified descriptions: We've streamlined the descriptions for several webhook endpoints, including List Webhooks, Enable Webhooks, Replay Webhooks, Create Endpoint, Update Endpoint, and List Endpoints, to make them more concise and easier to understand.
  • Updated documentation links: All internal and external links within the webhook documentation have been updated to point to the correct, current resources.

💰 Billing and Subscription Updates

  • Enhanced Customer API: The Read Customer endpoint now includes a complete example response, providing a clearer picture of the data you'll receive from the API.
  • Component Price Point examples: We've added new examples for Volume and Tiered price points to the Create Component Price Point endpoint, providing clearer guidance for different pricing schemes. The Stairstep Price Point example was also corrected to include a valid ending_quantity.
  • Flexible Subscription Usage: The subscription_id path parameter for the Create Usage endpoint has been updated to subscription_id_or_reference. This allows you to use either the subscription's ID or its reference string, making the endpoint more flexible.
  • Updated documentation links: The links in the documentation for GoCardless, Stripe SEPA/BECS Direct Debit, and Chargify.js have been corrected to ensure they point to the latest and most relevant documentation.

🧰 General Enhancements

  • Concise descriptions: We've shortened descriptions for the Read Customer and Read Component endpoints to be more direct.
  • Improved link consistency: All external links, especially those referencing Chargify.js and various examples, have been reviewed and updated to the correct, canonical URLs.

7.0.0

24 Jul 14:19
5e424b6

Choose a tag to compare

  • List Service Credits: Added a new endpoint (GET /service_credits.json) to list service credits.
  • Invoice Consolidation: Introduced a consolidation_level parameter to the GET /invoices.json endpoint to control how invoices are grouped.
  • Filter by Coupon Code: Added a coupon_code parameter to filter subscriptions.
  • New Component Field: The product_family_handle field has been added to the Read/List Components endpoints.
  • New Payment Profile Fields: Added created_at and updated_at fields to the payment profile schema.
  • New Invoice Field: The received_on date has been added to the Read Invoice endpoint response.
  • Deferred Signup: Added support for defer_signup in payment examples.

6.1.0

21 Jan 11:15
4694f15

Choose a tag to compare

What's Changed

  • Added scheduleSubscriptionCancellationEnabled property to the Site model
  • Added string representations for models

6.0.0

13 Dec 16:00
76625cf

Choose a tag to compare

  • AdvancedBillingClient was slightly reworked:

    • domain parameter has been removed.
    • subdomain parameter changed name to site
    • Environment has changed. Now it's either default US, or EU for Advanced Billing eu hosting. The default is US. SDK is now supporting EU hosted accounts.
  • Coupon fixes:

    • renamed CreateOrUpdateCoupon to CouponRequest
    • renamed CreateOrUpdatePercentageCouponPercentage to CouponPayloadPercentage
    • changed CreateOrUpdateCouponCoupon to CouponPayload
    • There're no longer 2 distinct models for Flat amount and Percentage coupon. They're merged into CouponPayload. Using it, specify either amount_in_cents or percentage property
    • code, name, description, amount_in_cents and percentage are not required properties in CouponPayload model. It means they're not send as nulls if unset. It enables patching coupon with updateCoupon without specifying these properties values. Previous version enforced setting them.
    • CouponPayload end_date changes type from datetime to date. Response coupon end_date is still datetime (its calculated as end of the day)
    • update_coupon now throws ErrorListResponseException
    • added currency_prices for Coupon response. Note you need to specify suitable query parameters to access it
    • added currency_prices query parameter for read_coupon and find_coupon
    • added some missing descriptions
    • changed Coupon amount_in_cents to long
    • changed CouponCurrency price to nullable double and id to nullable Integer
    • create_or_update_coupon_currency_prices now throws ErrorStringMapResponseException
  • Subscription Fixes:

    • added SubscriptionResponse for purge_subscription operation
    • purge_subscription now throws SubscriptionResponseErrorException
    • update_prepaid_subscription_configuration now throws ApiException when the status code is 422
  • Components fixes:

    • removed PrepaidComponentPricePoint. Use CreatePrepaidComponentPricePoint when creating price points for PrepaidComponent together with component instead
    • added prepaid-specific properties to ComponentPricePoint (response model)
    • removed upgrade_charge and downgrade_credit from EbbComponent, OnOffComponent and MeteredComponent request models (not applicable for this type of component)
    • removed deprecated price_in_cents from component request models
    • removed prices from OnOffComponent request model (unit_price should be used)
    • Fixed ComponentPricePoint expiration_interval_unit type
    • corrected some descriptions
    • Define exceptions for create component price points operations
  • Currency Prices fixes:

    • add currency_prices query parameter to read_component_price_point
    • UpdateCurrencyPrice price is now double instead of int
    • Add price_id and price_point_id to CurrencyPrice
    • Return verbose exception message for currency prices operations
  • Events fixes:

    • Added EventKey enum and filled it with missing event types
    • merged SubscriptionGroupSignupFailure and SubscriptionGroupSignupFailure and SubscriptionGroupSignupSuccess into SubscriptionGroupSignupEventData.
    • documented key to event_specific_data mappings.
    • removed EventType used in events endpoints for filter. EventKey should be used instead.
  • Misc:

    • Added missing properties and types for Invoice
    • fixed record_event and bulk_record_events. Now they work with default environment, with subdomain specified during client initialization. They no longer need subdomain provided to the method execution
    • Fixed types for models required for update subscription group and add subscription to group operations
    • Make initiate_delayed_cancellation and cancel_dunning throw ErrorListResponseException on 422 error
    • added processing Invoice Status
    • Fix errors for Subscription Notes
    • Add error model for list_offers
    • Use date/date_time instead of string for filtering when listing products and product families
    • Now it's possible to list archived product price points using archived property with list_product_price_points

Full Changelog: 5.2.0...6.0.0

5.2.0

17 Oct 14:49
8474b8f

Choose a tag to compare

What's Changed

  • Added tax_exempt_reason and default_auto_renewal_profile_id to Customer
  • Added received_on to InvoicePayment and CreateInvoicePayment
  • Added product_price_point_id and product_price_point_handle to UpdateSubscription
  • Improved some properties descriptions

Full Changelog: 5.1.0...5.2.0

5.1.0

27 Sep 10:51
193752e

Choose a tag to compare

What's Changed

  • Add imported to subscription cancellation_method
  • Add id filter to List Products API

Full Changelog: 5.0.0...5.1.0

5.0.0

21 Aug 14:26
27948d8

Choose a tag to compare

What's Changed

  • DE-934 Fix tests on a new site by @michalpierog in #55
  • [DE-932] Release 5.0.0 by @maciej-nedza in #56
  • DE-921 DE-922 Fix problem with interval units - interval units now can be nullable in various contexts, ExtendedIntervalUnit was renamed to ExpirationIntervalUnit, now ExpirationIntervalUnit is used in SubscriptionCustomPrice, CreatePrepaidComponentPricePoint, CreateProductPricePoint, CreateOrUpdateProduct, PrepaidComponent, ProductPricePoint and Product for expirationIntervalUnit property. This enum has additional value of never (this has not changed)
  • DE-921 DE-924 Reworked vaults - CurrentVault enum was renamed to AllVaults and filled with previously missing values. BankAccountVault was filled with missing values. ApplePayVault was added with the vault supporting this payment method. CreditCardVault was added with vaults supporting this payment method. PayPalVault was added with vaults supporting this payment method. Models for respective payment profiles types now use respective enums.
  • DE-910 Distinguish response payment profiles based on the paymentType. PaymentProfileResponsePaymentProfile was renamed to PaymentProfile.ApplePayPaymentProfile, and PayPalPaymentProfile were added as possible PaymentProfile in PaymentProfileResponse. Fixed a bug, when response payment profile couldn't be deserialized due to missing fields.
  • Added publicUrlExpires_on to the Invoice
  • Added achLateReject to the InvoiceRefund
  • Added tax-related properties to InvoiceTaxComponentBreakout and InvoiceTax
  • SUB-4037 Add taxIncluded to ComponentCustomPrice. Added request model for Activate Event-Based Component endpoint, SubscriptionComponentActivateEventBasedComponent
    productFamilyId in endpoint paths parameters is now string, to enable searching by both handle and id
  • [DE-932] Rename Chargify API by @michalpierog in #57

Full Changelog: 4.0.0...5.0.0

4.0.0

01 Jul 09:02
d761c10

Choose a tag to compare

What's Changed

  • Increase timeout to 120s by default (DE-874)
  • Ability to create products using the product family handle - productFamilyId in createProduct method is now String instead of number (SUB-3996 )
  • Add API endpoints for finding price points by handle. Move PricePoint methods from ComponentsController to ComponentPricePointsController (IN-3434)

PRs

Full Changelog: 3.0.0...4.0.0