Skip to content
This repository has been archived by the owner on Dec 7, 2022. It is now read-only.

fiskaly/fiskaly-sdk-java

Repository files navigation

fiskaly SDK for Java/JRE and Java/Android

The fiskaly SDK includes an HTTP client that is needed1 for accessing the kassensichv.io API that implements a cloud-based, virtual CTSS (Certified Technical Security System) / TSE (Technische Sicherheitseinrichtung) as defined by the German KassenSichV (Kassen­sich­er­ungsver­ord­nung).

Features

  • Automatic authentication handling (fetch/refresh JWT and re-authenticate upon 401 errors).
  • Automatic retries on failures (server errors or network timeouts/issues).
  • Automatic JSON parsing and serialization of request and response bodies.
  • Future: [1] compliance regarding BSI CC-PP-0105-2019 which mandates a locally executed SMA component for creating signed log messages.
  • Future: Automatic offline-handling (collection and documentation according to Anwendungserlass zu § 146a AO)

Integration

Maven / Gradle

The fiskaly Java SDK is available via Maven.

JRE (version 1.6+)

Add the following to your build.gradle:

dependencies {
    implementation 'com.fiskaly.sdk:fiskaly-sdk:1.2.200-jre'
}

Additionaly to the SDK, you'll also need the fiskaly client. Follow these steps to integrate it into your project:

  1. Go to https://developer.fiskaly.com/downloads
  2. Download the appropriate client build for your platform
  3. Move the client into your project output directory or somewhere within the OS search path

Android

First of all, download the fiskaly Client for android (e.g. com.fiskaly.client-android-all-v1.2.200.aar) and copy the Android Archive to app/libs/

Then, add the following to your app/build.gradle:

dependencies {
    implementation 'com.fiskaly.sdk:fiskaly-sdk:1.2.200-android'
    implementation files('libs/com.fiskaly.client-android-all-v1.2.200.aar')
}

Usage

Demo

package com.fiskaly.sdk.demo.jre;

import com.fiskaly.sdk.*;

public class Main {
    public static void main(String[] args) throws Exception {
        final String apiKey = System.getenv("FISKALY_API_KEY");
        final String apiSecret = System.getenv("FISKALY_API_SECRET");
        final FiskalyHttpClient client = new FiskalyHttpClient(apiKey, apiSecret, "https://kassensichv.io/api/v1");
        final FiskalyHttpResponse response = client.request("GET", "/tss");
        System.out.println(response);
    }
}

Proguard Configuration

-keep class com.sun.jna.* { *; }
-keepclassmembers class * extends com.sun.jna.* { public *; }

Client Configuration

The SDK is built on the fiskaly Client which can be configured through the SDK.

Related