Skip to content

Repository files navigation

SendLime Server SDK for Java

Official Java SDK for the SendLime Messaging API v2.

Installation

Gradle

allprojects {
    repositories {
        maven { url 'https://jitpack.io' }
    }
}

dependencies {
    implementation 'com.github.SendLime:sendlime-sdk-java:v2.0.0'
}

Maven

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>

<dependency>
    <groupId>com.github.SendLime</groupId>
    <artifactId>sendlime-sdk-java</artifactId>
    <version>v2.0.0</version>
</dependency>

Quick Start

SendLimeClient client = SendLimeClient.builder()
    .apiKey("sl_live_your_key_here")
    .build();

Send an SMS

SendMessageResponse response = client.getMessages().send("8801XXXXXXXXX", "Hello World!");

if (response.isSuccess()) {
    System.out.println("Message ID: " + response.getData().getMessageId());
    System.out.println("Status: " + response.getData().getStatus());
} else {
    System.out.println("Error: " + response.getErrorMessage());
}

With an approved sender / brand ID:

SendMessageResponse response = client.getMessages().send("brand_id", "8801XXXXXXXXX", "Hello World!");

Send a WhatsApp Message

SendMessageResponse response = client.getMessages().sendWhatsApp("8801XXXXXXXXX", "Hello from WhatsApp!");

With a WhatsApp profile brand ID:

SendMessageResponse response = client.getMessages().sendWhatsApp("brand_id", "8801XXXXXXXXX", "Hello!");

List Messages

ListMessagesResponse response = client.getMessages().list();

if (response.isSuccess()) {
    for (MessageDetail msg : response.getData()) {
        System.out.println(msg.getId() + " -> " + msg.getStatus());
    }
    System.out.println("Total: " + response.getPagination().getTotal());
}

With pagination:

ListMessagesResponse response = client.getMessages().list(10, 2); // limit=10, page=2

Get Message Detail

MessageDetailResponse response = client.getMessages().get("message_id");

if (response.isSuccess()) {
    MessageDetail msg = response.getData();
    System.out.println("Status: " + msg.getStatus());

    DeliverySync sync = response.getDeliverySync();
    if (sync != null && sync.isChecked()) {
        System.out.println("Provider status: " + sync.getProviderStatus());
    }
}

Get Batch Detail

BatchDetailResponse response = client.getBatches().get("batch_id");

if (response.isSuccess()) {
    BatchDetail batch = response.getData();
    System.out.println("Total: " + batch.getTotal() + ", Delivered: " + batch.getDelivered());

    for (BatchMessage msg : batch.getMessages()) {
        System.out.println(msg.getTo() + " -> " + msg.getStatus());
    }
}

Check Balance

BalanceResponse response = client.getBalance().get();

if (response.isSuccess()) {
    System.out.println("Balance: " + response.getData().getBalance());
    System.out.println("Currency: " + response.getData().getCurrency());
}

List Senders

SendersResponse response = client.getSenders().list();

if (response.isSuccess()) {
    for (SenderData sender : response.getData()) {
        System.out.println(sender.getSender() + " (" + sender.getChannel() + ") - " + sender.getStatus());
    }
}

Get Pricing

PricingResponse response = client.getPricing().get();

// Or filter by country
PricingResponse bdPricing = client.getPricing().get("BD");

if (response.isSuccess()) {
    for (PricingEntry entry : response.getData()) {
        System.out.println(entry.getChannel() + ": " + entry.getPrice() + " " + entry.getCurrency());
    }
}

Webhook Logs

List webhook delivery logs:

WebhookLogsResponse response = client.getWebhooks().listLogs();

if (response.isSuccess()) {
    for (WebhookLogData log : response.getData()) {
        System.out.println(log.getEvent() + " -> " + log.getStatus());
    }
}

Retry a failed webhook:

WebhookRetryResponse response = client.getWebhooks().retryLog("log_id");
System.out.println("Retry success: " + response.isSuccess());

OTP Verification

Send a verification code:

SendCodeResponse response = client.getVerify().sendCode("MyApp", "8801XXXXXXXXX");

if (response.isSuccess()) {
    String requestId = response.getData().getRequestId();
    System.out.println("Request ID: " + requestId);
}

With locale and code length:

SendCodeResponse response = client.getVerify().sendCode("MyApp", "8801XXXXXXXXX", "en-us", 6);

Check the code:

VerifyCodeResponse response = client.getVerify().checkCode(requestId, "123456");

if (response.isSuccess()) {
    System.out.println("Verified: " + response.getData().getStatus());
}

API Coverage

API Methods
Messages send, sendWhatsApp, list, get
Batches get
Balance get
Senders list
Pricing get
Webhook Logs listLogs, retryLog
Verify (OTP) sendCode, checkCode

Migration from v1.x

The v2.0 SDK restructures the client for full API coverage:

// v1.x
SendLimeClient client = SendLimeClient.build().apiKey("key").build();
client.getSmsClient().sendMessage(to, text);
client.getSmsClient().getBalance();
client.getCodeClient().sendCode(brand, phone);
client.getCodeClient().verifyCode(requestId, code);

// v2.0
SendLimeClient client = SendLimeClient.builder().apiKey("key").build();
client.getMessages().send(to, text);
client.getBalance().get();
client.getVerify().sendCode(brand, phone);
client.getVerify().checkCode(requestId, code);

Support

support@sendlime.com

About

Java Server SDK for SendLime services.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages