Zindua

Instant communication platform for businesses, optimized for developers.

Product
  • WhatsApp
  • Campaigns
  • Bot builder
  • MailGuard
  • Verify
  • Pricing
Developers
  • Documentation
  • Node.js
  • Next.js
  • PHP
  • FastAPI
  • MCP / Cursor
Solutions
  • Public sector
  • Health & care
  • Banking & fintech
  • NGOs & associations
  • SaaS & product teams
  • All solutions
Company
  • About
  • Blog
  • Contact
  • Status
  • Terms
  • Privacy

Product

  • WhatsApp
  • Campaigns
  • Bot builder
  • MailGuard
  • Verify
  • Pricing

Developers

  • Documentation
  • Node.js
  • Next.js
  • PHP
  • FastAPI
  • MCP / Cursor

Solutions

  • Public sector
  • Health & care
  • Banking & fintech
  • NGOs & associations
  • SaaS & product teams
  • All solutions

Company

  • About
  • Blog
  • Contact
  • Status
  • Terms
  • Privacy

© 2026 Zindua, Inc. All rights reserved.

System status
Zindua
How it WorksPricingCompare
Sign in
Get started

Zindua for Java

One official package on Maven Central: run.zindua:zindua-sdk v1.0.1. Spring Boot, Quarkus, Micronaut, Jakarta, Maven, or Gradle. Same JAR. Backend only.

Gradleimplementation("run.zindua:zindua-sdk:1.0.1")
Maven<dependency>
Maven Central 1.0.1API docs

One JAR. Every Java backend.

Spring Boot is the common case, not a different product.

One JAR on Maven Central. Spring Boot is the common case, not a different product.

Stack

Spring Boot

The usual case. Same artifact: there is no zindua-spring-boot-starter. Register ZinduaClient as a @Bean and inject it.

Server-side only

ZINDUA_API_KEY in env or a secrets manager. Never in Swing, JavaFX, a browser bundle, or an Android APK.

Typed validation

Email, E.164 WhatsApp, and template slugs validated locally before calling the API.

Email + WhatsApp

One send() method for both channels. Same templates as Node, PHP, and .NET.

Java 17 + Central

run.zindua:zindua-sdk on Maven Central. JDK HttpClient + Jackson. No extra HTTP client to add.

Spring included

No second package. One @Bean in Spring Boot. Quarkus or Micronaut construct the same client by hand.

Dashboard logs

Every send() returns a logId. Confirm delivery in Dashboard → Logs before you ship.

Install and send

Gradle or Maven to first OTP. Pick a use case. The Java snippet updates.

Install SDK

Gradle

One Maven Central package. Gradle or Maven. Spring Boot, Quarkus, or plain Java.

build.gradle.kts

Java
1implementation("run.zindua:zindua-sdk:1.0.1")2 3# or Maven4<dependency>5  <groupId>run.zindua</groupId>6  <artifactId>zindua-sdk</artifactId>7  <version>1.0.1</version>8</dependency>9 10# .env11ZINDUA_API_KEY=znd_test_your_key_here

Step by step

From Maven Central to dashboard logs.

Maven Central install to dashboard log confirmation.

Step 0101

Create a Zindua project

Sign up at zindua.run, create a project, copy the API key. Connect email and/or WhatsApp in the dashboard.

API reference

Methods and environment variables.

Parity with @zindua/sdk on Node. Includes PushMirror createChallenge.

POST /send

send()

Queue email or WhatsApp message

Integrate with any Java application

Spring Boot uses this JAR. Android and desktop call your backend.

Main.java
import io.zindua.sdk.ZinduaClient;import io.zindua.sdk.ZinduaSendOptions; public class Main {  public static void main(String[] args) {    ZinduaClient zindua = new ZinduaClient(System.getenv("ZINDUA_API_KEY"));     var result = zindua.send(ZinduaSendOptions.builder()        .to("user@example.com")        .template("otp-verification")        .variable("code", "482910")        .build());     System.out.println(result.getLogId());  }}

Spring Boot

ZinduaConfig.java
import io.zindua.sdk.ZinduaClient;import io.zindua.sdk.ZinduaClientOptions;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration; @Configurationclass ZinduaConfig {  @Bean  ZinduaClient zinduaClient() {    return new ZinduaClient(        ZinduaClientOptions.builder()            .apiKey(System.getenv("ZINDUA_API_KEY"))            .build());  }}

Desktop / Android

YourBackend.java
// WRONG: never put the project key in Swing, JavaFX, or an APK// new ZinduaClient("znd_live_..."); // RIGHT: desktop / Android / browser call YOUR backendPOST https://your-api.example/auth/otp{ "to": "user@example.com" } // YOUR Spring service holds the key and calls Zinduazindua.send(ZinduaSendOptions.builder()    .to(req.to())    .template("otp-verification")    .variable("code", code)    .build());

Need another stack?

Same templates and logs across Node, PHP, Python, .NET, and Java.

All SDKs.NET guide