Small PHP client library for the fiskaly Management and SIGN DE API v2

Maintainers

Package info

github.com/drechsler-development/fiskaly

pkg:composer/drechsler-development/fiskaly

Statistics

Installs: 4

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.2 2026-06-13 13:45 UTC

This package is auto-updated.

Last update: 2026-06-13 13:47:09 UTC


README

Kleine PHP-Klassenbibliothek für die fiskaly SIGN DE API v2 und die fiskaly Management API.
Schlank gehalten, benötigt nur PHP, cURL und JSON. Alle öffentlichen Methoden sind in PascalCase benannt.

Installation

composer require drechsler-development/fiskaly

Aufbau

Klasse Beschreibung
FiskalyManagement Management API (Organisationen, API-Keys, Benutzer, Rechnungsadressen)
FiskalySignDe SIGN DE API v2 (TSS, Clients, Transaktionen, Exporte)

Token-Speicher

Der Token-Speicher wird beim Erstellen einer Instanz übergeben und speichert Access- und Refresh-Token.

Klasse Beschreibung
Auth\FileTokenStorage Speichert Token in einer JSON-Datei
Auth\SessionTokenStorage Speichert Token in der PHP-Session

Quickstart

Die folgende Beispielanwendung zeigt die grundlegende Nutzung der Fiskaly API.

<?php

declare(strict_types=1);

use DD\Fiskaly\Fiskaly;

require __DIR__ . '/../vendor/autoload.php';

// Option A: FULL usage (Management + Sign DE) — provide your MANAGED organization credentials
$managedApiKey         = 'YOUR_TEST_API_KEY';
$managedApiSecret      = 'YOUR_TEST_API_SECRET';
$managedOrganizationId = 'YOUR_TEST_ORGANIZATION_ID';

try {

	$Fiskaly = new Fiskaly($managedApiKey, $managedApiSecret, $managedOrganizationId);
	$Fiskaly->debugOutput = true;
	$response = $Fiskaly->ListOrganizations ();
    
	print_r($response);
    
	//...and more methods from the Fiskaly class to manage organizations, API credentials, TSEs, and transactions.

} catch (Exception $e) {
	echo 'Fehler: ' . $e->getMessage ();
}

Verwendung von Fiskaly Sign DE (TSS, Clients, Transaktionen, Exporte) ohne Management-Credentials

Wenn Sie nur die SIGN DE API (TSS, Clients, Transaktionen, Exporte) verwenden möchten und keine Management-Credentials (managed API-Key / Secret) haben, können Sie die Bibliothek ebenfalls verwenden. Geben Sie beim Konstruktor keine Management-Credentials an und setzen Sie stattdessen die Sign-DE API-Credentials:

<?php

declare(strict_types=1);

use DD\Fiskaly\FiskalySignDe;

require __DIR__ . '/../vendor/autoload.php';

// Option A: FULL usage (Management + Sign DE) — provide your MANAGED organization credentials
$apiKey         = 'YOUR_TEST_API_KEY';
$apiSecret      = 'YOUR_TEST_API_SECRET';

try {
	$FiskalySignDe = new FiskalySignDe($apiKey, $apiSecret);
	$FiskalySignDe->SetDebugOutput(true);

	// Nun können Sie sich an der Sign DE API authentifizieren und Sign-DE-Methoden verwenden
	$FiskalySignDe->Authenticate();
	// z.B. $Fiskaly->CreateTss('tss-id');

} catch (Exception $e) {
	echo 'Fehler: ' . $e->getMessage();
}

Direkte Nutzung der Modulklassen (Composer-User)

Wenn Sie die Module direkt verwenden und sich die Klassenbibliothek per Composer einbinden, können Sie FiskalyManagement und FiskalySignDe auch eigenständig instanziieren. Beide Klassen akzeptieren optional API-Credentials im Konstruktor — so können Sie die Authentifizierung sofort beim Erstellen durchführen.

Beispiele:

use DD\Fiskaly\Auth\SessionStorage;use DD\Fiskaly\Configuration\Configuration;use DD\Fiskaly\FiskalyManagement;use DD\Fiskaly\FiskalySignDe;

$configSign = new Configuration(Configuration::DEFAULT_BASE_URL_SIGN_DE);
$configMgmt = new Configuration(Configuration::DEFAULT_BASE_URL_MANAGEMENT);
$storage = new SessionStorage();

// Sign DE direkt mit Credentials
$signDe = new FiskalySignDe($configSign, $storage, 'YOUR_SIGN_DE_API_KEY', 'YOUR_SIGN_DE_API_SECRET');
// nun direkt nutzbar: $signDe->TssService()->CreateTss('tss-id');

// Management direkt mit Credentials
$management = new FiskalyManagement($configMgmt, $storage, 'YOUR_MANAGED_API_KEY', 'YOUR_MANAGED_API_SECRET', 'YOUR_MANAGED_ORGANIZATION_ID');
// nun direkt nutzbar: $management->OrganizationService()->ListOrganizations([...]);

Hinweise

  • UUIDv4 für neue Ressourcen: DD\Fiskaly\Util\Uuid::V4()
  • Admin-Operationen erfordern zuerst API-Authentifizierung, danach TSS-Level-Admin-Auth.
  • Fehler werden als ApiException geworfen (Statuscode, fiskaly Error-Code, Response, Request-ID).

Beispiele & Tests

Praktische Beispiele für alle Services befinden sich in examples/index.php.
Die dort verwendete TestClass (examples/TestClass.php) deckt bereits ein paar Methoden zum Erstellen/Löschen einer Organisation, Erstellen einer TSE, eines Clients und Hinzufügen einer Transaktion ab und kann direkt als Ausgangspunkt genutzt werden. Rufe dabei die ->Run() Methode auf, um diese Beispiele auszuführen. Eine simple json ausgabe zeigt die Ergebnisse an.