zeevx/lara-termii
LaraTermii integrates the Termii messaging API into Laravel, making it easy to send SMS and OTP tokens, manage sender IDs and channels, and add Termii-powered messaging to Laravel notifications and applications.
dataPlans(), createEsim(), purchasePlan(), qrCode(), profile(), usage(), planStatus(), esims(), countries()). That is enough surface area to prototype a travel-eSIM, roaming, or IoT/M2M offering without a second vendor onboard. This is a roadmap-level unlock, not a nice-to-have.sendMessageWithNumber() tells you the Number API is not live on Termii's v4 gateway despite being documented. Any roadmap item depending on per-number messaging should be re-scoped or deferred, not scheduled against this SDK.composer update.Adopt when:
$termii->esim()), typed exceptions like TermiiException::esimAuthenticationFailed(), and no public API churn — the 1.3.0 refactor moved internals into traits without breaking callers.Look elsewhere when:
For executives: The vendor we use for SMS and OTP now ships an eSIM product through the same integration. In one release we gained ten new capabilities — data plans, eSIM creation, plan purchase, QR provisioning, usage and status — at effectively zero incremental integration cost, because it reuses our existing credentials. That opens a credible path to a connectivity revenue line (travel eSIM, IoT) without a new vendor contract or a new procurement cycle. The one removal in this release is a method that never worked against the live gateway, so there is no customer-facing impact.
For engineering: Upgrade is low-risk — the public API is unchanged, internals were reorganized into per-product traits (Concerns\Engage, Concerns\Sotel), which sets us up for future product sub-clients. Two action items: (1) grep for sendMessageWithNumber() and delete any call sites — it was added in 1.2.0 and removed here because Termii's v4 gateway 404s on sms/number/send; (2) pin the version and review changelogs on upgrade, since this release demonstrates that minor versions can drop public methods. New surface to evaluate: $termii->esim() with nine endpoints and a typed esimAuthenticationFailed() exception for token-exchange failures.
Bottom line: Adopt the upgrade, treat the eSIM sub-client as a funded spike rather than a shipped feature, and hold per-number messaging off the roadmap until Termii confirms the endpoint is live.
How can I help you explore Laravel packages today?