Datenexport & Anbieterwechsel

Informationen für Zweimano-Firmenkunden (B2B)

Zweck

Zweimano-Kunden können einen Export ihrer exportierbaren Daten verlangen, insbesondere im Rahmen eines Anbieterwechsels oder bei Beendigung der Nutzung.

Während der kostenlosen Testphase wird für einen solchen Export-/Switching-Vorgang kein Entgelt erhoben (0 EUR).

Verfahren

  1. Anforderung jederzeit per E-Mail an info@azizgasim.de.
  2. Identität und Firmenzuordnung werden geprüft.
  3. Zweimano führt den Export ohne unangemessene Verzögerung durch (reguläre Übergangsphase höchstens 30 Kalendertage).
  4. Nach Bereitstellung folgt eine Abrufphase von mindestens 30 Kalendertagen.
  5. Danach erfolgt die Löschung der exportierbaren operativen Kundendaten, soweit keine gesetzliche Pflicht entgegensteht.

In der Testphase gibt es keinen kontinuierlichen API-Sync zu Drittsystemen. Export und Portability API liefern jeweils einen aktuellen ZIP-Snapshot zum Zeitpunkt der Anforderung.

Portabilitätsschnittstelle

Zweimano stellt für einen Export-/Switching-Vorgang eine dokumentierte, ausschließlich lesende HTTPS-Schnittstelle bereit. Der Zugriff erfolgt über einen zeitlich begrenzten Portability Token. Die Schnittstelle dient ausschließlich der Datenportabilität — kein Schreibzugriff auf Zweimano und keine allgemeine Integrations-/CRUD-API.

Ein Zielanbieter kann damit aktuelle Export-Snapshots anfordern und herunterladen. Jede Anforderung erzeugt einen neuen Snapshot zum Zeitpunkt der Anforderung (kein Live-Sync).

Base URL: https://zweimano.de/api/v1/portability

Authentifizierung: Header Authorization: Bearer <portability-token> (vom Operator ausgegeben; Klartext nur einmal sichtbar).

GET /schema

Liefert Exportversion, Format, Encoding, Datenfiles inkl. Felder, ausgeschlossene Kategorien, Interoperabilitätsformate sowie Links auf diese Dokumentation.

Authorization: Bearer <portability-token>

{
  "export_version": "1.0",
  "format": "…",
  "encoding": "UTF-8",
  "data_files": [ … ],
  "excluded_categories": [ … ],
  "interoperability_formats": [ … ],
  "documentation": {
    "public_url": "https://zweimano.de/datenexport",
    "base_url": "https://zweimano.de/api/v1/portability"
  },
  "snapshot_note": "…"
}

POST /exports

Erzeugt einen aktuellen Snapshot der zum Token gehörenden Firma (kein company_id im Request).

Authorization: Bearer <portability-token>

{
  "id": "<uuid>",
  "status": "ready",
  "requested_at": "…",
  "ready_at": "…",
  "created_at": "…",
  "expires_at": "…",
  "size": 12345,
  "checksum_sha256": "…"
}

GET /exports/{export}

Metadaten/Status eines eigenen Exports. Fremde Export-IDs werden nicht gefunden.

GET /exports/{export}/download

Lädt die ZIP-Datei herunter (application/zip, Content-Disposition: attachment, Cache-Control: private, no-store). Nur eigene, noch gültige Exports.

Einzelne erzeugte Portability-Snapshots sind zeitlich begrenzt verfügbar (derzeit 7 Tage ab Erstellung). Solange der Portability-Zugang gültig ist, können während der Abrufphase weitere aktuelle Snapshots erzeugt werden. Eine einzelne ZIP-Datei wird nicht zwingend über die gesamte Abrufphase von 30 Tagen gespeichert.

Format

ZIP archive containing UTF-8 JSON files and original customer files.

Dateiname z. B. zweimano-export-<firma>-<datum>.zip.

Encoding: UTF-8. Zeitangaben als ISO-8601.

ZIP-Struktur

  • README.txt – Kurzbeschreibung des Exports
  • data/company.json – Stammdaten und Konfiguration des Unternehmens (Objekt).
  • data/access_changes.json – Audit der Zugangs- und Tarifänderungen (Array).
  • data/users.json – Benutzer/Mitarbeiter des Unternehmens (Array). Ohne Passworthashes und Tokens.
  • data/clients.json – Kunden und zugehörige Kontaktdaten (Array).
  • data/work_orders.json – Aufträge inkl. Terminen, Status und Einsatzadressen (Array).
  • data/work_order_series.json – Wiederkehrende Auftragsserien inkl. RRULE (Array).
  • data/assignments.json – Mitarbeiterzuweisungen zu Aufträgen (Array).
  • data/series_assignments.json – Mitarbeiterzuweisungen zu Auftragsserien (Array).
  • data/attachments.json – Metadaten zu Fotos/PDFs/Dokumenten (Array). Dateiinhalte liegen unter files/.
  • data/checklist_templates.json – Checklisten-Vorlagen (Array).
  • data/checklist_template_items.json – Punkte der Checklisten-Vorlagen (Array).
  • data/work_order_checklist_items.json – Checklistenpunkte an Aufträgen (Array). Ohne Zeitstempel pro Abhaken.
  • data/work_order_series_checklist_items.json – Checklistenpunkte an Auftragsserien (Array).
  • data/work_order_signatures.json – Unterschriften bzw. Ablehnungsgründe beim Auftragsabschluss (Array). Bilder unter files/signatures/.
  • data/work_order_proofs.json – Arbeitsnachweis-PDFs (Array). Dateien unter files/proofs/.
  • files/attachments/<id>/<dateiname> – in Zweimano gespeicherte Auftragsdateien
  • files/profile-pictures/<user-id>/<dateiname> – Profilbilder der Benutzer, soweit vorhanden

data/company.json

Stammdaten und Konfiguration des Unternehmens (Objekt).

Feld Typ Beschreibung
id integer Interne Firmen-ID
name string Firmenname
slug string|null Technischer Slug
contact_name string|null Ansprechpartner
email string|null Firmen-E-Mail
phone string|null Telefon
street string|null Straße
zip string|null PLZ
city string|null Ort
country string|null Land
website string|null Website
status string active|inactive
settings object|array Company-Settings
trial_started_at string|null ISO-8601 Start der Testphase
trial_ends_at string|null ISO-8601 Ende der Testphase
trial_extended_at string|null ISO-8601 einmalige Verlängerung
plan string|null klein|team|betrieb|individuell
billing_cycle string|null monthly|yearly
subscribed_at string|null ISO-8601 Tarifbeginn
subscription_ends_at string|null ISO-8601 Kündigungsende
launch_offer_until string|null Datum Startangebot
individual_max_persons integer|null Personenlimit bei individuell
individual_monthly_price integer|null Monatspreis bei individuell
read_only_until string|null ISO-8601 Lesemodus-Ende
created_at string|null ISO-8601
updated_at string|null ISO-8601

data/access_changes.json

Audit der Zugangs- und Tarifänderungen (Array).

Feld Typ Beschreibung
id integer Eintrags-ID
event string Ereignistyp
previous_values object Alter Zustand
new_values object Neuer Zustand
created_at string|null ISO-8601

data/users.json

Benutzer/Mitarbeiter des Unternehmens (Array). Ohne Passworthashes und Tokens.

Feld Typ Beschreibung
id integer Benutzer-ID
name string Name
email string|null E-Mail
role string admin|dispatcher|worker
status string active|inactive
mobile_access_enabled boolean Mobile-Zugang aktiv
last_login_at string|null ISO-8601
password_set_by_user boolean Passwort vom Benutzer gesetzt
profile_picture_export_path string|null Relativer ZIP-Pfad zum Profilbild unter files/profile-pictures/, falls vorhanden
created_at string|null ISO-8601
updated_at string|null ISO-8601

data/clients.json

Kunden und zugehörige Kontaktdaten (Array).

Feld Typ Beschreibung
id integer Kunden-ID
client_number string|null Kundennummer
name string Kundenname
type string|null Kundentyp
contact_name string|null Ansprechpartner
email string|null E-Mail
phone string|null Telefon
street string|null Straße / Einsatzadresse
zip string|null PLZ
city string|null Ort
country string|null Land
notes string|null Notizen
payment_terms string|null Zahlungsbedingungen
status string|null Status
send_proofs boolean Arbeitsnachweise per E-Mail senden
created_by integer|null Benutzer-ID Ersteller
created_at string|null ISO-8601
updated_at string|null ISO-8601

data/work_orders.json

Aufträge inkl. Terminen, Status und Einsatzadressen (Array).

Feld Typ Beschreibung
id integer Auftrags-ID
client_id integer|null Kunden-ID
work_order_number string|null Auftragsnummer
title string Titel
description string|null Beschreibung
priority string|null Priorität
status string Status
scheduled_start string|null ISO-8601 geplant Start
scheduled_end string|null ISO-8601 geplant Ende
actual_start string|null ISO-8601 Ist-Start
actual_end string|null ISO-8601 Ist-Ende
street string|null Einsatzstraße
zip string|null PLZ
city string|null Ort
country string|null Land
series_id integer|null Serien-ID, falls Teil einer Serie
occurrence_date string|null Vorkommen-Datum (Y-m-d)
detached_from_series_at string|null ISO-8601, wann vom Serienplan gelöst
created_by integer|null Benutzer-ID Ersteller
created_at string|null ISO-8601
updated_at string|null ISO-8601

data/work_order_series.json

Wiederkehrende Auftragsserien inkl. RRULE (Array).

Feld Typ Beschreibung
id integer Serien-ID
client_id integer|null Kunden-ID
title string Titel
description string|null Beschreibung
priority string|null Priorität
street string|null Einsatzstraße
zip string|null PLZ
city string|null Ort
country string|null Land
start_time string Uhrzeit (HH:MM:SS)
duration_minutes integer Dauer in Minuten
rrule string RFC 5545 RRULE
starts_on string Startdatum (Y-m-d)
ends_on string|null Endedatum (Y-m-d)
paused_at string|null ISO-8601 Pause
created_by integer|null Benutzer-ID Ersteller
created_at string|null ISO-8601
updated_at string|null ISO-8601

data/assignments.json

Mitarbeiterzuweisungen zu Aufträgen (Array).

Feld Typ Beschreibung
id integer Zuweisungs-ID
work_order_id integer Auftrags-ID
user_id integer Benutzer-ID
assigned_at string|null ISO-8601
created_at string|null ISO-8601
updated_at string|null ISO-8601

data/series_assignments.json

Mitarbeiterzuweisungen zu Auftragsserien (Array).

Feld Typ Beschreibung
id integer Zuweisungs-ID
work_order_series_id integer Serien-ID
user_id integer Benutzer-ID
assigned_at string|null ISO-8601
created_at string|null ISO-8601
updated_at string|null ISO-8601

data/attachments.json

Metadaten zu Fotos/PDFs/Dokumenten (Array). Dateiinhalte liegen unter files/.

Feld Typ Beschreibung
id integer Anhang-ID
work_order_id integer Auftrags-ID
user_id integer|null Uploader-Benutzer-ID
kind string photo|document|signature
filename string|null Anzeigename
file_size integer|null Größe in KB
mime_type string|null MIME-Typ
notes string|null Notizen
export_path string Pfad der Originaldatei im ZIP
created_at string|null ISO-8601
updated_at string|null ISO-8601

data/checklist_templates.json

Checklisten-Vorlagen (Array).

Feld Typ Beschreibung
id integer Vorlagen-ID
name string Name
created_at string|null ISO-8601
updated_at string|null ISO-8601

data/checklist_template_items.json

Punkte der Checklisten-Vorlagen (Array).

Feld Typ Beschreibung
id integer Punkt-ID
checklist_template_id integer Vorlagen-ID
position integer Reihenfolge
label string Text
created_at string|null ISO-8601
updated_at string|null ISO-8601

data/work_order_checklist_items.json

Checklistenpunkte an Aufträgen (Array). Ohne Zeitstempel pro Abhaken.

Feld Typ Beschreibung
id integer Punkt-ID
work_order_id integer Auftrags-ID
position integer Reihenfolge
label string Text
is_done boolean Erledigt
completed_by integer|null Benutzer-ID
created_at string|null ISO-8601
updated_at string|null ISO-8601

data/work_order_series_checklist_items.json

Checklistenpunkte an Auftragsserien (Array).

Feld Typ Beschreibung
id integer Punkt-ID
work_order_series_id integer Serien-ID
position integer Reihenfolge
label string Text
created_at string|null ISO-8601
updated_at string|null ISO-8601

data/work_order_signatures.json

Unterschriften bzw. Ablehnungsgründe beim Auftragsabschluss (Array). Bilder unter files/signatures/.

Feld Typ Beschreibung
id integer Signatur-ID
work_order_id integer Auftrags-ID
signer_name string|null Name des Unterzeichners
signed_at string|null ISO-8601 Zeitpunkt der Unterschrift (intern)
captured_by integer|null Benutzer-ID des abschließenden Mitarbeiters
declined_reason string|null customer_absent|customer_refused|null
export_path string|null Pfad des Unterschriftsbilds im ZIP, falls vorhanden
created_at string|null ISO-8601
updated_at string|null ISO-8601

data/work_order_proofs.json

Arbeitsnachweis-PDFs (Array). Dateien unter files/proofs/.

Feld Typ Beschreibung
id integer Nachweis-ID
public_id string Öffentliche Dokument-ID (ULID), steht auch im PDF
work_order_id integer Auftrags-ID
version integer Versionsnummer ab 1
sha256 string SHA-256 des PDF
generated_at string|null ISO-8601
sent_to_customer_at string|null ISO-8601
sent_to_email string|null Empfängeradresse
signature_id integer|null Zugehörige Signatur-ID
export_path string Pfad der PDF-Datei im ZIP
created_at string|null ISO-8601
updated_at string|null ISO-8601

Nicht Bestandteil des Kundenexports

  • Passworthashes
  • Zugriffstokens / Sanctum Tokens
  • interne Security-Secrets
  • interne Operatordaten
  • interne Audit-/Securityinformationen, soweit keine Kundendaten
  • Daten anderer Mandanten

Technische Einschränkungen

  • Export und Portability API liefern jeweils einen aktuellen ZIP-Snapshot zum Zeitpunkt der Anforderung, kein Live-Sync.
  • Während eines gültigen Portability Tokens dürfen mehrere Snapshots nacheinander erzeugt werden.
  • Soft-deleted Datensätze werden nicht exportiert, sofern sie in Zweimano bereits als gelöscht gelten.
  • Fehlende Profilbilder oder Anhangdateien werden übersprungen; der Export bleibt gültig.
  • IDs sind Zweimano-interne Primärschlüssel und dienen der Nachvollziehbarkeit von Relationen.

Verwendete Interoperabilitätsformate

  • ZIP (application/zip)
  • JSON (RFC 8259), UTF-8
  • ISO-8601 Timestamps

Löschung

Operative Kundendaten werden nach Ende der Abrufphase gelöscht, sofern kein anderer dokumentierter Grund entgegensteht. Vertragsnachweise (z. B. akzeptierte AGB und AVV) werden als Nachweisarchiv getrennt aufbewahrt.