Skip to content

Getting Started

Christian KASSE edited this page Apr 2, 2026 · 2 revisions

Getting Started

Prerequisites

  • Java 21 or later
  • Maven 3.8+ or Gradle 8+
  • An Essabu API key (obtain from the Essabu Dashboard under Settings > API Keys)

Installation

Maven

<dependency>
    <groupId>com.essabu</groupId>
    <artifactId>essabu-java</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</dependency>

Gradle (Groovy)

implementation 'com.essabu:essabu-java:1.0.0-SNAPSHOT'

Gradle (Kotlin DSL)

implementation("com.essabu:essabu-java:1.0.0-SNAPSHOT")

Creating a Client

import com.essabu.Essabu;

Essabu essabu = Essabu.builder()
    .apiKey("ess_live_xxxxxxxxxxxx")
    .tenantId("your-tenant-uuid")
    .build();

The baseUrl defaults to https://api.essabu.com. Override it for staging or local development:

Essabu essabu = Essabu.builder()
    .apiKey("ess_test_xxxxxxxxxxxx")
    .tenantId("your-tenant-uuid")
    .baseUrl("http://localhost:8080")
    .build();

Your First Request

import com.essabu.common.model.PageRequest;
import com.essabu.common.model.PageResponse;

// List employees
PageResponse<Map> employees = essabu.hr().employees().list(
    companyId,
    PageRequest.builder().page(0).size(20).build()
);

System.out.println("Total employees: " + employees.getTotalElements());
employees.getContent().forEach(emp ->
    System.out.println(emp.get("firstName") + " " + emp.get("lastName"))
);

Module Access

Each module is lazily initialized on first access:

essabu.hr()          // HR module
essabu.accounting()  // Accounting module
essabu.identity()    // Identity module
essabu.trade()       // Trade module
essabu.payment()     // Payment module
essabu.einvoice()    // E-Invoice module
essabu.project()     // Project module
essabu.asset()       // Asset module

Spring Boot Integration

If you are using Spring Boot, add the SDK dependency and configure properties in application.yml:

essabu:
  api-key: ess_live_xxxxxxxxxxxx
  tenant-id: your-tenant-uuid
  base-url: https://api.essabu.com  # optional

Then inject the Essabu bean anywhere:

@Service
public class MyService {
    private final Essabu essabu;

    public MyService(Essabu essabu) {
        this.essabu = essabu;
    }

    public void doWork() {
        var customers = essabu.trade().customers().list(
            PageRequest.builder().page(0).size(10).build()
        );
    }
}

See Configuration for all available properties.

Next Steps

Clone this wiki locally