saade/z-api-php-sdk
A PHP SDK for integrating Z-API's WhatsApp service into Laravel or any PHP application. It provides a clean client for managing instances, sending text and media messages, handling webhooks, and automating WhatsApp workflows with Composer-ready convenience.
Architecture fit: saade/z-api-php-sdk is a thin Laravel service-provider wrapper around the Z-API (WhatsApp Business messaging) HTTP API, built on the Saloon HTTP client. It slots into the standard Laravel package pattern: composer install, config publish, credential env vars, and a facade/injected client. There is no persistence layer, no queueing, no domain model — it is a transport adapter. That makes it a low-coupling dependency that is easy to isolate behind our own WhatsAppGateway interface.
Integration feasibility: Straightforward for a greenfield Laravel service. The two material constraints in v1.1.0 are (a) Saloon 4 is now a hard requirement, and (b) Laravel 13 support is newly added. Any application that pins Saloon 3 directly, or that depends on another package requiring Saloon 3, will hit a Composer conflict. This is resolvable but must be checked before we commit.
Technical risk:
composer.json constraint range rather than trusting the changelog headline.Key questions to close before approval:
composer why saloon/saloon show Saloon as a direct or transitive dependency anywhere else in our stack, and at what version?composer.json actually constrain to? Does it still support our current LTS, or does taking v1.1.0 force a Laravel 13 upgrade we have not scheduled?Stack fit: The package is a natural fit if we are on a modern Laravel baseline and have already standardized on Saloon (or are willing to). Its scope is narrow enough that wrapping it in an internal adapter costs little and buys real exit optionality. I would not let SDK request classes leak into domain or application layers.
Migration path (v1.0.0 → v1.1.0):
composer why saloon/saloon, composer show saloon/saloon, and a grep for direct Saloon imports in our codebase.Compatibility: Primary compatibility axes are PHP version, Laravel version range, and Saloon major. All three are hard constraints in composer.json; read it directly rather than relying on the changelog. Also confirm Guzzle major version alignment, since Saloon sits on top of it and conflicts surface there.
Sequencing:
Maintenance: Low surface area, but single-maintainer risk. Pin to a minor version range, subscribe to GitHub releases, and keep an internal note on what a fork would cost. The presence of Dependabot and Laravel Pint workflows suggests basic hygiene; the absence of substantive feature work suggests limited roadmap.
Support: Community-only, GitHub-issues based. No vendor SLA. We should own the runbook for Z-API authentication, token rotation, and webhook re-registration — those are operational concerns the SDK will not cover.
Scaling: The SDK itself is stateless and adds negligible overhead. Real scaling levers are Z-API rate limits, WhatsApp template approval throughput, and our own queueing. Outbound sends should go through queued jobs with per-tenant throttling and idempotency keys; inbound webhooks need to be acknowledged fast and processed asynchronously. Neither concern is addressed by this package, so we build it.
Failure modes to instrument:
Error/TypeError on first send after deploy — caught by staging canary.Ramp-up: Low. A Laravel developer familiar with HTTP clients can be productive in one to two days; the Saloon 4 migration adds a few days of dependency archaeology. Budget roughly one engineer-week end-to-end for a careful upgrade including CVE validation and staging soak, assuming Saloon is SDK-only. If Saloon is used directly elsewhere, double it.
How can I help you explore Laravel packages today?