class-atlas/laravel-usms
Laravel-USMS provides a clean, configurable integration for sending SMS through the USMS gateway. It offers a Laravel-friendly API, publishable configuration, and straightforward delivery handling for transactional and notification messages.
DESCRIPTION_REQUIRED 60, DESCRIPTION_TOO_LONG 61) should map to actionable user-facing messages rather than generic failures. This supports better recovery rates during brand creation.createBrandName($brandName) becomes createBrandName($brandName, $description). The v2 signature can no longer succeed against the live API, so this is a scheduled upgrade item, not an optional enhancement.Consider adoption when:
Look elsewhere when:
For executives: This is a small but mandatory upgrade. uBill, our SMS provider, now refuses to create a brand name without a description, so v3 makes that argument required. The engineering change is one parameter plus handling two new rejection cases. The product change is a description field with a 500-character limit in brand onboarding. Doing this promptly keeps branded messaging provisioning working; staying on v2 means brand creation calls fail.
For engineering: The only signature change is createBrandName($brandName, $description). Update all call sites, add the field to persistence, and handle DESCRIPTION_REQUIRED (60) and DESCRIPTION_TOO_LONG (61) as distinct USmsRejectedException cases. No other API changes are reported. Effort is low, but the upgrade is time-sensitive because the v2 call shape cannot succeed.
For product: Add a required description to the brand creation flow, with guidance to include the website, social page or application, and intended use of the brand name. Validate length client-side and surface the two rejection reasons as specific, recoverable messages. This should improve first-attempt approval rates and reduce support load from failed submissions.
Risk to note: The package's release cadence follows uBill's contract changes. Budget for periodic dependency reviews, and avoid spreading direct createBrandName calls across the codebase so future signature changes remain a contained update.
How can I help you explore Laravel packages today?