-
Notifications
You must be signed in to change notification settings - Fork 0
Authentication
Christian KASSE edited this page Apr 2, 2026
·
1 revision
The Essabu SDK uses API key authentication. Every request includes your API key and tenant ID as HTTP headers:
X-API-Key: ess_live_xxxxxxxxxxxx
X-Tenant-Id: your-tenant-uuid
- Log in to the Essabu Dashboard
- Navigate to Settings > API Keys
- Click Create API Key
- Copy the key immediately (it is only shown once)
| Prefix | Environment | Usage |
|---|---|---|
ess_live_ |
Production | Live data, real transactions |
ess_test_ |
Sandbox | Test data, no real side effects |
Every request is scoped to a tenant. The tenant ID determines which organization's data you access.
Essabu essabu = Essabu.builder()
.apiKey("ess_live_xxxxxxxxxxxx")
.tenantId("tenant-uuid") // All requests scoped to this tenant
.build();For user-facing applications, the Identity module provides authentication flows:
// Login and get tokens
Map tokens = essabu.identity().auth().login(Map.of(
"email", "user@example.com",
"password", "secret"
));
String accessToken = (String) tokens.get("accessToken");
String refreshToken = (String) tokens.get("refreshToken");
// Refresh an expired token
Map refreshed = essabu.identity().auth().refresh(Map.of(
"refreshToken", refreshToken
));
// Logout
essabu.identity().auth().logout();// Enable 2FA
Map qrCode = essabu.identity().auth().enable2FA(Map.of());
// Display qrCode.get("qrCodeUrl") to the user
// Verify 2FA code
essabu.identity().auth().verify2FA(Map.of("code", "123456"));
// Generate recovery codes
Map recovery = essabu.identity().auth().generateRecoveryCodes();Manage API keys programmatically:
// List API keys
var keys = essabu.identity().apiKeys().list(PageRequest.builder().build());
// Create a new API key
Map apiKey = essabu.identity().apiKeys().create(Map.of(
"name", "CI/CD Key",
"scopes", List.of("read", "write")
));
// Revoke an API key
essabu.identity().apiKeys().revoke(apiKeyId);// List active sessions
var sessions = essabu.identity().sessions().list(PageRequest.builder().build());
// Revoke a specific session
essabu.identity().sessions().revoke(sessionId);
// Revoke all sessions
essabu.identity().sessions().revokeAll();- Never hardcode API keys in source code. Use environment variables or secret managers.
-
Use test keys (
ess_test_) during development. - Rotate keys regularly and revoke unused keys.
- Restrict scopes when creating API keys -- grant only the permissions needed.
- Store tokens securely in user-facing applications.
Getting Started
Core Concepts
Modules
- HR Module
- Accounting Module
- Identity Module
- Trade Module
- Payment Module
- EInvoice Module
- Project Module
- Asset Module
Resources