Lieferantenverträge per CSV importieren
Zwanzig neue Freelancer im Projekt? Statt zwanzigmal das Vertragsformular auszufüllen, laden Sie jetzt eine einzige CSV-Datei hoch.
Wer als Projektmanager ein größeres Vorhaben aufsetzt, kennt das: Das Team steht, die Konditionen sind verhandelt, die Liste mit Namen, E-Mail-Adressen, Stundensätzen und Laufzeiten liegt längst in einer Tabelle. Bisher musste trotzdem jeder Lieferantenvertrag einzeln in ZEIT.IO angelegt werden – Formular öffnen, Daten abtippen, speichern, nächster Vertrag. Das kostet Zeit und ist fehleranfällig, gerade bei Stundensätzen und Datumsangaben.
Ab sofort geht das in einem Schritt: Lieferantenverträge lassen sich per CSV-Datei importieren – Standardverträge ebenso wie Projektverträge 1:1, bei denen ZEIT.IO das zugehörige Projekt gleich mit anlegt. Und für alle, die ZEIT.IO an eigene Systeme angebunden haben, gibt es dafür einen neuen API-Endpunkt.

So funktioniert der Import
Auf der Übersicht der Lieferantenverträge hat der Button „Neuen Lieferantenvertrag anlegen“ ein Dropdown-Menü bekommen. Darüber erreichen Sie direkt:
- Standard – den klassischen Lieferantenvertrag,
- Projektvertrag 1:1 – Vertrag und Projekt in einem Rutsch,
- CSV Import – die neue Import-Seite.
Dort wählen Sie Ihre CSV-Datei aus und klicken auf „CSV Import“. ZEIT.IO legt für jede Zeile der Datei einen Lieferantenvertrag an – bei einem Projektvertrag 1:1 zusammen mit seinem Projekt – und meldet Ihnen pro Zeile, ob es geklappt hat. Schlägt eine Zeile fehl, sehen Sie die Zeilennummer und den Grund – die übrigen Verträge werden trotzdem angelegt. Sie korrigieren nur die betroffenen Zeilen und importieren sie erneut.
Das Importformat ist das Exportformat
Sie müssen kein neues Dateiformat lernen. Die Import-Datei hat genau den Aufbau des CSV-Exports der Vertragsübersicht. Der einfachste Weg zur passenden Vorlage:
- Exportieren Sie Ihre bestehenden Lieferantenverträge über „CSV Export“ unter der Liste.
- Öffnen Sie die Datei in Excel oder LibreOffice, löschen Sie die vorhandenen Zeilen und tragen Sie die neuen Verträge ein – oder kopieren Sie einen bestehenden Vertrag und passen Sie ihn an.
- Speichern Sie als CSV und laden Sie die Datei auf der Import-Seite hoch.
Damit das funktioniert, haben wir den Export vervollständigt. Er enthält jetzt jedes Feld des Vertragsformulars, unter anderem:
- E-Mail-Adresse, Sprache und Organisation des Empfängers,
- den Vertragsinhalt und die Nachricht an den Empfänger,
- die Vergütungsart (Stundensatz, Tagessatz, jeweils einfach oder mehrfach) mit allen Einkaufssätzen,
- die eigenen Bezeichnungen für die Sätze (etwa „Remote“ oder „Vor-Ort“),
- Zahlungsziel, bis zu drei Skontostufen und das Gutschriftverfahren,
- Laufzeit, Angebotsfrist und die maximalen Stunden pro Tag,
- bei Projektverträgen 1:1 das zugehörige Projekt: Name, Kennung, Budgetart, Budget sowie Stunden- oder Tagesbudget.
Zahlen und Datumsangaben schreibt der Export in Ihrem Sprachformat – also 1.250,50 und 31.12.2026 bei deutscher Einstellung. Der Import liest sie im selben Format wieder ein. Auch mehrzeilige Vertragstexte in Anführungszeichen kommen sauber durch.
Worauf ZEIT.IO beim Import achtet
- Pflichtangaben: Titel, Vorname, Nachname und E-Mail-Adresse des Lieferanten, Start- und Enddatum sowie die Vergütungsart mit mindestens einem passenden Satz. Beim Projektvertrag 1:1 kommen der passende Verkaufssatz und die Projektangaben hinzu.
- Keine Dubletten: Gibt es bereits einen Lieferantenvertrag mit derselben Empfänger-E-Mail, demselben Titel und demselben Startdatum, wird die Zeile als Fehler gemeldet und nicht noch einmal angelegt. Bei einem Projektvertrag 1:1 gilt dasselbe, wenn es die Projektkennung schon gibt. Einen versehentlich doppelt hochgeladenen Import können Sie also gefahrlos wiederholen.
- Nichts geht ungewollt raus: Importierte Verträge werden als Entwurf angelegt und nicht versendet. Sie prüfen die Verträge in Ruhe und schicken sie erst dann an die Lieferanten, wenn alles stimmt.
- Bekannte Lieferanten werden verknüpft: Ist die E-Mail-Adresse bereits bei ZEIT.IO registriert, wird der Vertrag direkt mit diesem Benutzer verbunden.
- Nachvollziehbar: Jeder importierte Vertrag erhält einen Eintrag im Auditlog, ebenso jedes mitangelegte Projekt.
Für den Import brauchen Sie die Berechtigung, Lieferantenverträge zu bearbeiten.
Standardvertrag oder Projektvertrag 1:1
Welche Art von Vertrag eine Zeile anlegt, entscheidet die Spalte „Typ“:
default– Standardvertrag. Der Vertrag ist zunächst keinem Projekt zugeordnet. Sie fügen den Lieferanten wie gewohnt als Mitglied zu einem oder mehreren Projekten hinzu – und legen dort den Verkaufssatz fest. Deshalb werden die Verkaufssätze aus der CSV-Datei hier ignoriert.project_contract_11– Projektvertrag 1:1. ZEIT.IO legt Vertrag und Projekt in einem Schritt an, genau wie beim Anlegen im Formular. Dafür füllen Sie zusätzlich die Projektspalten am Ende der Datei: Projektname, Projektkennung, Budgetart (defaultfür Stunden,daysfür Tage), Budget und je nach Budgetart das Stunden- oder Tagesbudget. Die Verkaufssätze werden übernommen, und die Laufzeit des Vertrags ist die Laufzeit des Projekts.
Beim Projektvertrag 1:1 übernimmt der Import die Angebotsfrist, die Organisation des Empfängers und die eigenen Bezeichnungen der Sätze nicht – dafür gelten die Voreinstellungen Ihrer Organisation. Sie passen sie bei Bedarf im Vertrag an, bevor Sie ihn versenden.
Bei Standardverträgen bleiben die Projektspalten leer. Eine Datei darf beide Vertragsarten gemischt enthalten.
Tipp: Tragen Sie den Typ genau so ein, wie ihn der Export schreibt – am einfachsten kopieren Sie eine exportierte Zeile der gewünschten Vertragsart und passen sie an.
Neu in der API: POST /api/v1/org/contracts/suppliers
Der CSV-Import nutzt im Hintergrund einen neuen, öffentlichen API-Endpunkt. Den können Sie auch direkt verwenden – etwa um Lieferantenverträge automatisch aus Ihrem Recruiting-Tool, Ihrem ERP oder einem Freelancer-Portal in ZEIT.IO anzulegen.
POST /api/v1/org/contracts/suppliers
apiKey: ihr-api-key
Content-Type: application/json
{
"title": "Backend-Entwicklung Q4",
"recipient_firstname": "Anna",
"recipient_lastname": "Schmidt",
"recipient_email": "anna.schmidt@example.com",
"recipient_locale": "de",
"start_date": "2026-10-01",
"end_date": "2026-12-31",
"currency": "EUR",
"compensation_type": "hourly",
"hourly_wage": 9500,
"payment_term": 30
}
Die Antwort enthält die ID des neuen Vertrags:
201 Created
{ "contract": { "id": "6716..." } }
Gut zu wissen für Ihre Entwickler:
- Beträge werden als ganze Zahl in Cent übergeben (
9500= 95,00 €), Skonto-Prozentsätze mal 100 (150= 1,5 %),max_hours_per_dayin Sekunden und Datumsangaben alsJJJJ-MM-TT. - Die Vergütungsart ist einer der Werte
hourly,hourly_multi,dailyoderdaily_multi. - Die Regeln sind dieselben wie beim CSV-Import: Pflichtfelder, keine Dubletten, Status Entwurf, kein E-Mail-Versand.
- Fehlende oder ungültige Angaben beantwortet die API mit
422und einer Fehlermeldung, die das betroffene Feld nennt. - Alle Parameter sind in der API-Dokumentation beschrieben.
Für Verträge, bei denen zugleich ein Projekt entstehen soll, steht wie bisher POST /api/v1/org/contracts/suppliers_11 für den Projektvertrag 1:1 bereit. Diesen Endpunkt nutzt der CSV-Import für alle Zeilen vom Typ project_contract_11.
Und noch etwas: ein Filter für die Vertragsart
In der Übersicht der Lieferantenverträge gibt es einen neuen Filter „Vertragsart“. Damit blenden Sie wahlweise nur Standard-Verträge oder nur Projektverträge 1:1 ein. Der Filter wirkt auch auf Sortierung, Seitenwechsel und den CSV-Export – ein bequemer Weg, genau die Verträge zu exportieren, die Sie als Vorlage für den nächsten Import brauchen.
Warum das wichtig ist
Ein neues Projekt sollte nicht mit einem Nachmittag Dateneingabe beginnen. Mit dem CSV-Import übernehmen Sie Ihr Team in wenigen Minuten aus der Tabelle, die Sie ohnehin schon gepflegt haben. Arbeiten Sie mit Projektverträgen 1:1, entstehen dabei auch gleich die Projekte samt Budget – ein Lieferant, ein Projekt, eine Zeile. Die Verträge liegen als Entwürfe bereit, und Sie behalten die volle Kontrolle darüber, wann sie an die Lieferanten gehen. Mit der API lässt sich der Schritt sogar ganz automatisieren.
Fragen zum Import oder zur API? Schreiben Sie uns an support@zeit.io – wir helfen gern.