Minor bump: adopts the engine's top-level shipping field on
POST /v1/calculate (engine v0.59.0+). Mirrors opensalestax-js
v0.3.0 on the PHP side. Backward compatible — existing two-arg
callers of calculate() continue unchanged.
Shipping value object (request-side) with optional method,
separatelyStated, isHandlingCharge flags.CalculatedShipping DTO (response-side) under
OpenSalesTax\Responses\.?Shipping $shipping = null on Client::calculate().CalculateResponse::$shipping (CalculatedShipping|null).CalculateResponse::$coverageWarning (string|null) — engine
v0.59.0+ surfaces coverage warnings when rate data is incomplete.ShippingTest + calculate-mn-shipping.json fixture captured
from the live engine on 2026-05-19 (MN $100 + $12.50 shipping →
$9.0250 line tax + $1.1281 shipping tax).shipping will be null. Connectors should flag-gate on
$client->capabilities()->features->shippingFirstClass if they
need to detect this at setup time.Minor bump: adopts the engine's new GET /v1/capabilities endpoint
shipped in engine v0.59.0. Connectors can query engine capabilities
at setup time + gate feature-flagged code paths on a single fetch.
Client::capabilities() and Client::capabilitiesCached() —
GET /v1/capabilities; per-instance memoization on the cached variant.CapabilitiesResponse / CapabilityEndpoint / CapabilityFeatures
DTOs under OpenSalesTax\Responses\.CapabilityFeatures::$extras — preserves any future engine feature
flags the SDK doesn't yet have typed slots for. Forward-compatible
by design.Client::MIN_ENGINE_VERSION constant ('0.59.0') — for connector
tier code that wants to surface a clear "engine too old" error at
setup time.new OpenSalesTaxClient(...) → new OpenSalesTax\Client(...) to match the actual namespaced class.OpenSalesTax\Client wrapping /v1/health, /v1/states, /v1/rates, /v1/calculateAddress, LineItem (PHP 8.1 readonly classes)HealthResponse, StatesResponse, StateInfo, RatesResponse, CalculateResponse, CalculatedLine, JurisdictionRateOpenSalesTaxException (base), OpenSalesTaxApiException, OpenSalesTaxNetworkException, OpenSalesTaxValidationExceptionX-API-Key header auth (optional)How can I help you explore Laravel packages today?