Skip to content

Java SDK

Use the official Java client to talk to every SumUp public API.

The com.sumup:sumup-sdk package is the official Java SDK generated from the SumUp OpenAPI specification. It requires Java 17 or newer and ships both synchronous and asynchronous clients.

Add the dependency to your build file.

dependencies {
implementation("com.sumup:sumup-sdk:0.0.6")
}

Set the SUMUP_API_KEY environment variable or pass the token directly.

export SUMUP_API_KEY="sup_sk_MvxmLOl0..."
import com.sumup.sdk.SumUpClient;
SumUpClient client = new SumUpClient("sup_sk_MvxmLOl0...");
import com.sumup.sdk.SumUpClient;
import com.sumup.sdk.models.CheckoutCreateRequest;
import com.sumup.sdk.models.Currency;
SumUpClient client = SumUpClient.builder().build();
CheckoutCreateRequest request =
CheckoutCreateRequest.builder()
.amount(25.00f)
.currency(Currency.EUR)
.checkoutReference("ORDER-1001")
.merchantCode(System.getenv("SUMUP_MERCHANT_CODE"))
.description("Online payment via card widget")
.build();
var checkout = client.checkouts().createCheckout(request);
System.out.println(checkout.id());
import com.sumup.sdk.SumUpClient;
import com.sumup.sdk.models.CreateReaderCheckoutRequest;
import com.sumup.sdk.models.Money;
SumUpClient client = SumUpClient.builder().build();
String merchantCode = System.getenv("SUMUP_MERCHANT_CODE");
String readerId =
client.readers().listReaders(merchantCode).items().stream()
.findFirst()
.orElseThrow(() -> new IllegalStateException("No paired readers found."))
.id()
.value();
CreateReaderCheckoutRequest request =
CreateReaderCheckoutRequest.builder()
.description("Reader checkout")
.totalAmount(
Money.builder()
.currency("EUR")
.minorUnit(2L)
.value(1500L)
.build())
.build();
client.readers().createReaderCheckout(merchantCode, readerId, request);