Erstelle in deinem Lexware Office Account einen API-Schlüssel:
Einstellungen → Erweiterungen → Lexware Office Public API → „Schlüssel neu erstellen“
Siehe README.md.
<?php
require __DIR__.'/vendor/autoload.php';
use \Baebeca\LexwareApi;
use \Baebeca\LexwareException;
$lexware = new LexwareApi([
'api_key' => 'my-api-key'
]);| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
api_key |
string | – | API-Schlüssel (Pflicht) |
callback |
string | – | Standard-Callback-URL für Webhooks von Lexware Office, siehe Events / Webhooks |
ssl_verify |
bool | true |
Ob die SSL-Verbindung zu Lexware Office validiert werden soll |
Alle Methoden sollten stets in einem try/catch-Block verwendet werden.
Die Klasse LexwareException liefert über $e->getError() – sofern vorhanden – weitere Details zur Anfrage und zur API-Antwort.
Beispiel: Abfrage einer nicht existierenden Rechnung
try {
$invoice = $lexware->get_invoice('7f0f0f7f-dd61-4bf7-a9f7-a67b0530c7e9');
}
catch (LexwareException $e) {
echo $e->getMessage();
// LexwareApi: Requested resource does no exist (anymore)
print_r($e->getError());
/*
Array (
[HTTP Status] => 404
[Requested URI] => https://api.lexware.io/v1/invoices/7f0f0f7f-dd61-4bf7-a9f7-a67b0530c7e9
[Requested Payload] =>
[Response] => stdClass Object ( ... Fehlerantwort von Lexware Office ... )
)
*/
}Lexware Office erlaubt 2 Anfragen pro Sekunde, siehe API Rate Limits.
Das Rate-Limit wird automatisch erkannt. Der Request wird nach einer Pause von „Sekunden × Anzahl Versuche“ erneut abgesetzt. Das Verhalten lässt sich parametrisieren:
$lexware->configure_rate_limit(bool $repeat = true, int $seconds_to_sleep = 1, int $max_tries = 10): voidZusätzlich kann eine Callback-Funktion hinterlegt werden, die bei jedem getroffenen Rate-Limit ausgelöst wird.
Sie erhält einen bool-Parameter, ob der Aufruf erneut versucht wird.
$lexware->configure_rate_limit_callable(?callable $callback = null): void