Official SDKs
Official bZapper libraries to integrate in minutes, in your language. They all cover the same set of API operations: the 13 message types (text, image, video, document, audio, sticker, location, contact, poll, reaction, buttons, list, and OTP), numbers/instances, API keys, usage, and the advanced features — groups, presence, conversations, and contacts.
There are 7 languages — Node/TypeScript, Python, PHP, .NET (C#), Java, Go and Ruby — and they all follow the Berni Software standard, the same one behind the bFocus SDKs:
- every API operation has a method (159), named after the spec's
operationId; - automatic, safe retries, because every write carries an
Idempotency-Keythe API honors (see Errors, retries and idempotency); - typed errors with a stable
codeand arequestIdfor support; - webhook signature verification (HMAC-SHA256) and the bZapper Connect client;
- one shared conformance suite that all 7 run — an endpoint without a method breaks the build;
- zero runtime dependencies (only Java brings Jackson).
Install with a single command — no cloning required. Node, Python, PHP, .NET, Java, Go and Ruby are already published (npm, PyPI, Packagist, NuGet, Maven Central, Go modules, and RubyGems).
The essentials: you only need your API key
The SDK already points at the production API (https://api.bzapper.com.br). You
pass no URL at all — just your API key (bz_live_..., generated in the panel
under API Keys). That's all.
The API URL is optional and only meant for development (
http://localhost:8080) or self-hosting. In production, leave it out.
Installation
| Language | Installation |
|---|---|
| Node / TypeScript | npm install @bzapper/client |
| Python | pip install bzapper |
| PHP | composer require bzapper/bzapper |
| Go | go get github.com/bernisoftware/bzapper-go@latest |
| .NET (C#) | dotnet add package Bzapper |
| Java (Maven) | see the <dependency> block below |
| Ruby | gem install bzapper (or gem "bzapper" in your Gemfile) |
For Node, Python, PHP, .NET, Go, and Ruby, the command above already downloads the latest version and all dependencies — you add nothing else.
Java — dependency (Maven / Gradle)
Add only the SDK artifact. The single runtime dependency (Jackson, for JSON) comes in transitively — you don't need to declare anything else.
Maven (pom.xml):
<dependency>
<groupId>br.com.bernisoftware</groupId>
<artifactId>bzapper</artifactId>
<version>0.8.1</version>
</dependency>
Gradle (build.gradle.kts):
implementation("br.com.bernisoftware:bzapper:0.8.1")
Requires Java 17+. No Gson, OkHttp, or any other manual lib — the SDK uses the
JDK's own java.net.http.HttpClient and pulls in Jackson by itself.
Quick start
Installed? Then just pass the API key and send. No URL.
Node / TypeScript
import { Bzapper } from '@bzapper/client';
const bz = new Bzapper({ apiKey: 'bz_live_...' });
await bz.sendText({ to: '+5511999999999', body: 'Hello from bZapper! 👋' });
Python
from bzapper import Client
bz = Client("bz_live_...")
bz.send_text(to="+5511999999999", body="Hello from bZapper! 👋")
PHP
use Bzapper\Client;
$bz = new Client("bz_live_...");
$bz->sendText("+5511999999999", "Hello from bZapper! 👋");
Go
bz := bzapper.NewClient("bz_live_...")
bz.SendText(context.Background(), bzapper.SendTextParams{
SendBase: bzapper.SendBase{To: "+5511999999999"},
Body: "Hello from bZapper! 👋",
})