Warum Preislisten versionieren?
Preise ändern sich. Kunden müssen jedoch Rechnungen erhalten, die die Preise zum Zeitpunkt der Dienstnutzung widerspiegeln — nicht die heutigen. BillingEngine löst dies automatisch über Preislistenversionen.
Wie Versionen funktionieren
Jede Preisliste (price_list) kann beliebig viele Versionen (price_list_versions) haben. Jede Version hat:
| Feld | Beschreibung |
|---|---|
valid_from | Beginn der Gültigkeit |
valid_to | Ende der Gültigkeit (oder null = unbegrenzt) |
status | draft / active / archived |
Die Engine wählt immer die Version, deren valid_from–valid_to-Intervall das Datum des Datensatzes abdeckt.
Neue Version über die API erstellen
POST /api/v1/price-lists/{id}/versions
Authorization: Bearer <token>
{
"valid_from": "2026-04-01",
"valid_to": null,
"status": "active"
}
Anschließend Positionen hinzufügen:
POST /api/v1/price-lists/{id}/versions/{versionId}/items
{
"service_type": "SMS",
"unit_price": 0.035,
"currency": "EUR"
}
Übergang zur neuen Version
Bei einer Preiserhöhung ab 1. April genügt es:
- Neue Version mit
valid_from: "2026-04-01"erstellen - Alte Version durch Setzen von
valid_to: "2026-03-31"schließen (oder archivieren) - März-Datensätze bleiben mit alten Tarifen berechnet; April-Datensätze nutzen automatisch die neuen
Keine Änderungen an historischen Daten erforderlich.
Tipp: Draft-Versionen
Sie können eine neue Version zunächst im Status draft erstellen und sie mit Beispieldaten testen. Aktivieren Sie sie erst, wenn alles bereit ist — der ideale Workflow vor jeder Preiserhöhung.