This SDK is currently available for preview purposes only. It should not be used in production environments.

Send an SMS Message with Java

Note:

Before you can get started, you need the following already set up:

Learn how to quickly send SMS messages in a Java application with the Sinch API.

Steps:
  1. Set up Java application.
  2. Send your first SMS message.

Set up your Java application

  1. Create a new folder where you want to store your application. Open a command prompt or terminal to that location and execute the following command:
    Copy
    Copied
    gradle init

    This command starts up the process to create a new blank Java application. You can select the default options for most of the prompts, but ensure you select that you want to create an application.

    Note:

    This guide assumes you're using Gradle but if you want to use another Java build tool, we've provided installation instructions for the most popular ones below.

  2. Open App.java in your favorite editor and copy/paste in the App.java sample found on this page. Remember to keep your own package com.

Now that you've set up your application file, you must install the SDK itself and populate the code sample with your corresponding information.

The easiest way to install the SDK is using the Maven central repository.

Installing the SDK

You can create your Java project using your favorite method. Once your project is created, you need to add the SDK as a dependency. Depending on if you are using Gradle or Maven, you can add the necessary dependencies in the following ways:

Gradle

Add or ensure the following is in the application's build.gradle file:
Gradle with GroovyGradle with Kotlin
Copy
Copied
...
repositories {
    ...
    mavenCentral()
    ...
}
...

dependencies {
    ...
    implementation 'com.sinch.sdk:sinch-sdk-java:0.0.2-alpha'
    ...
}
...
Copy
Copied
...
repositories {
    ...
    mavenLocal()
    ...
}
...

dependencies {
    ...
    implementation("com.sinch.sdk:sinch-sdk-java:0.0.2-alpha")
    ...
}
...

Maven

Add the following to the pom.xml file:
Copy
Copied
<dependency>
    <groupId>com.sinch.sdk</groupId>
    <artifactId>sinch-sdk-java</artifactId>
    <version>0.0.2-alpha</version>
</dependency>

App.java

Use the code in this sample to send an SMS message using the Java SDK.

package send.sms;

import com.sinch.sdk.SinchClient;
import com.sinch.sdk.domains.sms.models.BatchText;
import com.sinch.sdk.domains.sms.models.requests.SendSmsBatchTextRequest;
import com.sinch.sdk.models.Configuration;
import com.sinch.sdk.models.SMSRegion;

import java.io.IOException;
import java.util.Collections;
import java.util.logging.Logger;

public class App {
    private static final Logger LOGGER = Logger.getLogger(App.class.getName());

  public App() throws IOException {}

  public static void main(String[] args) {
    try {
      new App().run();
    } catch (Exception e) {
      LOGGER.severe(e.getMessage());
      e.printStackTrace();
    }
  }

  public void run() {

    SinchClient client = new SinchClient(Configuration.builder()
                                    .setKeyId("YOUR_access_key")
                                    .setKeySecret("YOUR_access_secret")
                                    .setProjectId("YOUR_project_id")
                                    .setSmsRegion(SMSRegion.US)
                                    .build());


    LOGGER.info("Send Text");
    BatchText value =
        client
            .sms()
            .batches()
            .send(
                SendSmsBatchTextRequest.builder()
                    .setTo(Collections.singletonList("YOUR_recipient_phone_number"))
                    .setBody("This is a test SMS message using the Sinch Java SDK.")
                    .setFrom("YOUR_sinch_phone_number")
                    .build());

    LOGGER.info("Response: " + value);
  }
}

Modify your application

The code provided in App.java includes placeholder parameters. You'll need to update the parameters detailed in the following subsections with your values.

Initialize the client

Before initializing a client using this SDK, you'll need three pieces of information:

  • Your Project ID
  • An access key ID
  • An access key Secret
These values can be found on the Access Keys page of the Customer Dashboard. You can also create new access key IDs and Secrets, if required.
Note:
If you have trouble accessing the above link, ensure that you have gained access to the Conversation API by accepting the corresponding terms and conditions.

To start using the SDK, you need to initialize the main client class and create a configuration object to connect to your Sinch account. You can find all of the credentials you need on your Sinch dashboard.

US RegionEuropean Region
Copy
Copied
import com.sinch.sdk.SinchClient;
import com.sinch.sdk.models.Configuration;
import com.sinch.sdk.models.SMSRegion;

public class App {
    
    public static void main(String[] args) {
        SinchClient client = new SinchClient(Configuration.builder()
                                    .setKeyId("YOUR_access_key")
                                    .setKeySecret("YOUR_access_secret")
                                    .setProjectId("YOUR_project_id")
                                    .setSmsRegion(SMSRegion.US)
                                    .build());
    }
}
Copy
Copied
import com.sinch.sdk.SinchClient;
import com.sinch.sdk.models.Configuration;
import com.sinch.sdk.models.SMSRegion;

public class App {
    
    public static void main(String[] args) {
        SinchClient client = new SinchClient(Configuration.builder()
                                    .setKeyId("YOUR_access_key")
                                    .setKeySecret("YOUR_access_secret")
                                    .setProjectId("YOUR_project_id")
                                    .setSmsRegion(SMSRegion.EU)
                                    .build());
    }
}
Note:

For testing purposes on your local environment it's fine to use hardcoded values, but before deploying to production we strongly recommend using environment variables to store the credentials.

Fill in remaining parameters

Replace the remaining placeholder values for these parameters with your values:

ParameterYour value
YOUR_Sinch_phone_numberAny number you've assigned to your Sinch account. Find the number on your Sinch dashboard by clicking the service plan ID link and scrolling to the bottom of the page.
YOUR_recipient_phone_numberThe phone number to which you want to send the test SMS message.

Ensure you save your file.

Send your first SMS message

Now that your Java project is ready and the Sinch SDK is installed, you can send a text message to your mobile phone.

To send the message, run the following code:

Copy
Copied
gradle run

You should receive an SMS message to the number you specified.

Next steps

The code used in your Java application sends a POST request to the Sinch API /batches endpoint to send the SMS message. Click here to read more about the batches endpoint.

Additional resources

We'd love to hear from you!
Rate this content:
Still have a question?
 
Ask the community.

App.java

Use the code in this sample to send an SMS message using the Java SDK.

package send.sms;

import com.sinch.sdk.SinchClient;
import com.sinch.sdk.domains.sms.models.BatchText;
import com.sinch.sdk.domains.sms.models.requests.SendSmsBatchTextRequest;
import com.sinch.sdk.models.Configuration;
import com.sinch.sdk.models.SMSRegion;

import java.io.IOException;
import java.util.Collections;
import java.util.logging.Logger;

public class App {
    private static final Logger LOGGER = Logger.getLogger(App.class.getName());

  public App() throws IOException {}

  public static void main(String[] args) {
    try {
      new App().run();
    } catch (Exception e) {
      LOGGER.severe(e.getMessage());
      e.printStackTrace();
    }
  }

  public void run() {

    SinchClient client = new SinchClient(Configuration.builder()
                                    .setKeyId("YOUR_access_key")
                                    .setKeySecret("YOUR_access_secret")
                                    .setProjectId("YOUR_project_id")
                                    .setSmsRegion(SMSRegion.US)
                                    .build());


    LOGGER.info("Send Text");
    BatchText value =
        client
            .sms()
            .batches()
            .send(
                SendSmsBatchTextRequest.builder()
                    .setTo(Collections.singletonList("YOUR_recipient_phone_number"))
                    .setBody("This is a test SMS message using the Sinch Java SDK.")
                    .setFrom("YOUR_sinch_phone_number")
                    .build());

    LOGGER.info("Response: " + value);
  }
}