Rechnungen in Sevdesk zu erstellen ist recht einfach. Rechnungen wiederum mit der API zu erstellen, kann ziemlich frustrierend sein. Ich habe daher mein Laravel Sevdesk API Package erweitert, um hier Einfachheit zu schaffen. Schaue gerne mein ersten Blog zu dem Package an für die ersten Schritte.
Vorbereitung
Damit eine Rechnung erstellt wird, benötigen wir die ID eines Ansprechpartners. Das muss ein Sevdesk Benutzer sein, den du unter Einstellungen > Benutzer findest. Leider gibt es im Portal von Sevdesk keine Möglichkeit die ID des Benutzer rauszubekommen. Deshalb hab ich dafür ein kleinen Artisan Command erstellt.
Nutze dazu folgenden Befehl:
php artisan sevdesk:user
Beachte aber hierbei, dass du vorher deinen API Key in die .env Datei mit einfügst. Dieser Befehl holt sich alle Nutzer und zeigt sie in einer Liste an mit der ID, den Namen und der Email.
Check Sevdesk API Key
Start user request
Found some users.
==========================================================
12345678 | Martin Appelmann | hello@martin-appelmann.de
==========================================================
Hier wählst du dir deinen Nutzer aus, und kopierst dir die ID. Diese fügst du ebenfalls in die .env Datei. Es gibt noch ein paar andere Optionale Konfigurationen um Details in deiner Rechnung zu bearbeiten. Am Ende sollte so ungefähr deine .env aussehen.
SEVDESK_API_TOKEN=secret_token
SEVDESK_SEV_USER=12345678
SEVDESK_TAX_RATE=19 (optional)
SEVDESK_TAX_TEXT="Umsatzsteuer 19%" (optional)
SEVDESK_TAX_TYPE=default (optional)
SEVDESK_CURRENCY=EUR (optional)
SEVDESK_INVOICE_TYPE=RE (optional)
Rechnung erstellen
Da jetzt die Vorbereitung erledigt sind können wir mir dem eigentlichen erstellen beginnen. Als aller erstes benötigen wir hier unsere Sevdesk Instanz. Mir der invoice und create Methode wird dabei eine neue Sevdesk Rechnung erstellt. Der erste Parameter ist dabei dir Kontakt ID des Empfängers und der zweite Parameter sind die Rechnungspositionen, die in Form eines Arrays übergeben werden. Der dritte Parameter ist optional und kann weitere Optionen beinhalten, die für die Rechnung zuständig sind. In der Offizielle Dokumentation gibt es eine Übersicht der ganzen Optionen.
$sevdeskApi = SevdeskApi::make();
$sevdeskApi->invoice()->create($invoiceId, $items, $parameters);
Die Items werden in Form eines Arrays übergeben. Dabei hat jedes Element mindestens einen name und einen price. Die beiden sind erforderlich für ein Item. Quantity und text sind hier Optional und können auch weggelassen werden.
[
[
'name' => 'Webdesign',
'price' => 500,
],
[
'name' => 'Serveraufsetzung',
'price' => 200,
'quantity' => 2
],
[
'name' => 'App Endwicklung',
'price' => 800,
'text' => 'für iOS und Android'
]
]
So sieht dann der komplett Codesnippet aus.
$sevdeskApi = SevdeskApi::make();
$items = [
[
'name' => 'Webdesign',
'price' => 500,
],
[
'name' => 'Serveraufsetzung',
'price' => 200,
'quantity' => 2
],
[
'name' => 'App Endwicklung',
'price' => 800,
'text' => 'für iOS und Android'
]
]
$sevdeskApi->invoice()->create(12345678, $items);
Und das ist das Ergebnis in Sevdesk.
Zusammenfassung
Mit der Rechnungserstellung kommt ein wichtiger Part mit in das Sevdesk Package. Hier und da gibt es noch ein paar Verbesserungsmöglichkeiten aber fürs erste ist das erstmal gut so.
Falls du etwas findest, was nicht passt oder man besser umsetzen könnte, dann lass es mich gerne in den Kommentaren wissen.
Ansonsten wünsche ich euch noch eine gute Woche. Bis zum nächsten Mal.
Tschö