Download the PHP package justpilot/billomat-php-api without Composer
On this page you can find all versions of the php package justpilot/billomat-php-api. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download justpilot/billomat-php-api
More information about justpilot/billomat-php-api
Files in justpilot/billomat-php-api
Package billomat-php-api
Short Description Unofficial PHP 8.5+ SDK for the Billomat API, works with any PSR-18 HTTP client.
License Apache-2.0
Homepage https://github.com/justpilot/billomat-php-api
Informations about the package billomat-php-api
Billomat PHP API SDK
Sprache / Language: Deutsch (diese Datei) · English
Modernes, typisiertes PHP 8.4+ SDK für die Billomat-API — basiert auf Symfony-Komponenten, mit Read-Modellen, getrennten Write-Optionen und einer sauberen Exception-Hierarchie.
Unoffizielles SDK. Dieses Projekt steht in keiner offiziellen Verbindung zur Billomat GmbH und wird unabhängig entwickelt und gepflegt.
[!NOTE] 4.0 ist als Vorabversion erschienen (
v4.0.0-alpha.1): PHP 8.5, beliebiger PSR-18-Client, exakte Beträge stattfloat. Die englische Doku zu 4.0 steht auf billomat-php.justpilot.io, der Umstieg in UPGRADE-4.0.md. Diese README beschreibt weiterhin 3.x.
Inhalt
- Voraussetzungen
- Installation
- Quickstart
- Features
- Ressourcen
- Konfiguration
- Pagination
- Fehlerbehandlung
- Logging & HTTP-Client
- Tests
- Beispiele
- Beitragen
- Sicherheit
- Changelog
- Lizenz
Voraussetzungen
- PHP 8.4 oder neuer
- Composer
- Symfony-Komponenten ab Version 8.1 (
^8.1). Symfony 7.x wird nicht mehr unterstützt. - Ein Billomat-Account mit aktiviertem API-Zugriff
- Ein API-Schlüssel aus den Account-Einstellungen unter
https://<billomatId>.billomat.net/app/settings/api
billomatId ist der Subdomain-Teil deiner Billomat-URL. Bei https://mycompany.billomat.net/ ist die ID also mycompany.
Installation
Quickstart
Vollständige, ausführbare Beispiele liegen unter examples/.
Features
- PHP 8.4+, durchgängig typisiert (
final readonlyModels, Enums, Named Arguments). - HTTP-Layer auf
symfony/http-client; eigenesHttpClientInterfaceinjizierbar. - Eine
*Api-Klasse je Billomat-Ressource mit einheitlichen Verben (list,get,create,update,delete) plus ressourcenspezifischen Aktionen (complete,cancel,pdf,thumb…). - Auto-Pagination via
iterateAll()-Generator undlistPage()mit Metadaten. - Strukturierte Exception-Hierarchie mit Mapping auf HTTP-Statuscodes (401/403, 404, 400/422).
Ressourcen
Jede Ressource ist als public readonly-Eigenschaft auf dem BillomatClient zugreifbar. Die Tabelle gruppiert die Ressourcen nach Themengebiet — eine Zeile pro Doku-Datei.
Stammdaten
| Ressource | Zugriff | Doku |
|---|---|---|
| Kunden | $billomat->clients, clientPropertyValues |
docs/resources/clients.md |
| Kundenschlagworte | $billomat->clientTags |
docs/resources/client-tags.md |
| Ansprechpartner | $billomat->contacts |
docs/resources/contacts.md |
| Lieferanten | $billomat->suppliers, supplierTags, supplierPropertyValues |
docs/resources/suppliers.md |
| Artikel | $billomat->articles, articleTags, articlePropertyValues |
docs/resources/articles.md |
| Property-Definitionen | $billomat->articleProperties, clientProperties, supplierProperties, incomingProperties, userProperties |
docs/resources/properties.md |
Ausgangsbelege
| Ressource | Zugriff | Doku |
|---|---|---|
| Rechnungen | $billomat->invoices, invoiceItems, invoicePayments, invoiceComments, invoiceTags |
tags |
| Abo-Rechnungen | $billomat->recurrings, recurringItems, recurringTags, recurringEmailReceivers |
docs/resources/recurrings.md |
| Angebote | $billomat->offers, offerItems, offerComments, offerTags |
docs/resources/offers.md |
| Auftragsbestätigungen | $billomat->confirmations, confirmationItems, confirmationComments, confirmationTags |
docs/resources/confirmations.md |
| Lieferscheine | $billomat->deliveryNotes, deliveryNoteItems, deliveryNoteComments, deliveryNoteTags |
docs/resources/delivery-notes.md |
| Gutschriften | $billomat->creditNotes, creditNoteItems, creditNoteComments, creditNoteTags, creditNotePayments |
docs/resources/credit-notes.md |
| Mahnungen | $billomat->reminders, reminderItems, reminderTags |
docs/resources/reminders.md |
| Briefe | $billomat->letters, letterComments, letterTags |
docs/resources/letters.md |
Eingangsbelege
| Ressource | Zugriff | Doku |
|---|---|---|
| Eingangsrechnungen | $billomat->incomings, incomingComments, incomingPayments, incomingTags, incomingPropertyValues |
docs/resources/incomings.md |
| Eingangsrechnungs-Kategorien | $billomat->incomingCategories |
docs/resources/incoming-categories.md |
| Posteingang (Inbox) | $billomat->inboxDocuments |
docs/resources/inbox-documents.md |
Account & Hilfs-Ressourcen
| Ressource | Zugriff | Doku |
|---|---|---|
| Konto-Info | $billomat->account |
docs/resources/account.md |
| Aktivitätsverlauf | $billomat->activities |
docs/resources/activities.md |
| Suche | $billomat->search |
docs/resources/search.md |
| Einstellungen | $billomat->settings |
docs/resources/settings.md |
| Steuersätze | $billomat->taxes |
docs/resources/taxes.md |
| Steuerfreie Länder | $billomat->countryTaxes |
docs/resources/settings-tax-free-countries.md |
| Rollen | $billomat->roles |
docs/resources/settings-roles.md |
| Vorlagen | $billomat->templates |
docs/resources/templates.md |
| Lookups (Countries, Currencies, Units, DunningLevels, Users, EmailTemplates, FreeTexts, ReminderTexts) | $billomat->countries, currencies, units, dunningLevels, users, emailTemplates, freeTexts, reminderTexts |
docs/resources/lookups.md |
Weitergehende Konzepte
Vertiefende Themen sind unter Webhooks (nur UI-konfigurierbar, kein REST-Endpunkt — daher auch im SDK nicht abgebildet).
Konfiguration
BillomatClient::create() ist der bequeme Einstieg:
Für volle Kontrolle (etwa eigene baseUri) lässt sich BillomatConfig direkt verwenden:
Details zu allen Optionen und zur HTTP-Client-Injection: docs/configuration.md.
Pagination
Für List-Endpunkte stehen zusätzlich zu list() zwei Helfer bereit:
Details und Beispiele: docs/advanced/pagination.md.
Fehlerbehandlung
Alle vom SDK geworfenen Exceptions erben von BillomatException. HTTP-Fehler werden auf spezialisierte Subklassen abgebildet:
| Statuscode | Exception |
|---|---|
| 401, 403 | AuthenticationException |
| 404 | NotFoundException |
| 400, 422 | ValidationException |
| sonstige 4xx/5xx | HttpException |
get($id)-Methoden geben bei einer 404-Antwort null zurück, statt eine Exception zu werfen. Auf jeder HttpException sind getStatusCode() und getResponseBody() verfügbar — letzteres enthält den Roh-Body von Billomat und ist beim Debuggen oft hilfreich.
Beispiele und Patterns: docs/concepts/errors-and-rate-limits.md.
Logging & HTTP-Client
Der Symfony-HTTP-Client lässt sich vor der Übergabe an BillomatClient dekorieren — für Logging, Tracing, Retry oder Tests reicht die Standard-Symfony-Toolbox:
Für Unit-Tests eignet sich Symfony\Component\HttpClient\MockHttpClient als Drop-in. Patterns und Eigenheiten des HTTP-Layers (Query-Encoding, + vs. %2B, Array-Filter) sind in docs/advanced/http-layer.md beschrieben.
Tests
Die Unit-Suite läuft mit MockHttpClient und benötigt keine Credentials. Integrationstests unter tests/Integration/ werden übersprungen, solange BILLOMAT_ID und BILLOMAT_API_KEY nicht gesetzt sind. Mehr dazu in docs/testing.md.
Beispiele
Lauffähige, kommentierte Skripte liegen unter examples/ — vom Anlegen eines Kunden bis zum Abrufen eines PDFs. Jede Datei nimmt die Credentials aus Umgebungsvariablen, damit sie ohne Code-Änderungen direkt ausführbar ist.
Wechsel von phobetor/billomat oder vrok/billomat-client? Siehe docs/migration-from-phobetor.md.
Beitragen
Pull Requests sind willkommen. Der Beitragsleitfaden inklusive Coding-Standards, Test-Anforderungen und dem Drei-Schichten-Muster pro Ressource liegt in agents.md-Konvention.
Sicherheit
Hinweise zum Umgang mit API-Keys und zur verantwortlichen Meldung von Sicherheitslücken stehen in SECURITY.md.
Changelog
Versionshistorie und Release-Notes nach Keep a Changelog in Semantic Versioning.
Lizenz
Apache License 2.0 — siehe LICENSE.
All versions of billomat-php-api with dependencies
ext-bcmath Version *
php-http/discovery Version ^1.20
psr/event-dispatcher Version ^1.0
psr/http-client Version ^1.0.3
psr/http-client-implementation Version ^1.0
psr/http-factory Version ^1.1
psr/http-factory-implementation Version ^1.0
psr/http-message Version ^2.0
psr/log Version ^3.0