API: Stammdaten

Kunden, Objekte, Anlagen mit SW-Nummer und Auftragstypen über die API lesen, mit Filtern und allen Feldern.

Stand:

Stammdaten sind über die API nur lesbar. Alle Endpunkte brauchen die Berechtigung read:master-data. Grundlagen zu Anmeldung, Blättern und Fehlern stehen unter Grundlagen.

Methode Pfad Inhalt
GET /customers Kunden, blätterbar
GET /customers/{id} ein Kunde
GET /sites Objekte (Standorte eines Kunden), blätterbar
GET /sites/{id} ein Objekt
GET /assets Anlagen, blätterbar
GET /assets/{id} eine Anlage
GET /order-types aktive Auftragstypen, vollständig in einer Antwort

Kunde, Objekt und Anlage hängen so zusammen: Ein Kunde hat Objekte, ein Objekt hat Anlagen. Jede Anlage trägt customer_id und site_id, jedes Objekt customer_id.

Kunden#

Filter: status (active oder archived) sowie limit, cursor, updated_since.

curl "https://app.revisio-app.net/api/public/v1/customers?status=active&limit=100" \
  -H "Authorization: Bearer rvs_IhrToken"

Ein Kunde, wie ihn GET /customers/{id} liefert; in Listen steht dasselbe Objekt im Array data:

{
  "data": {
    "id": "01k7a3m9x2c4d5e6f7g8h9j0k1",
    "number": "K100231",
    "legacy_number": "4711",
    "name": "Wohnbau Beispielstadt GmbH",
    "name_addition": "Hausverwaltung",
    "kind": "company",
    "status": "active",
    "address": { "street": "Musterweg 12", "zip": "12345", "city": "Beispielstadt", "country": "DE" },
    "billing_address": null,
    "email": "[email protected]",
    "phone": "+49 30 1234567",
    "website": "https://www.example.com",
    "created_at": "2026-03-02T08:15:00+00:00",
    "updated_at": "2026-10-14T09:12:40+00:00"
  }
}
Feld Bedeutung
number Kundennummer in Revisio
legacy_number Nummer aus dem Altsystem oder ERP, falls gepflegt; gut als Schlüssel für die Zuordnung
kind company (Firma), public (öffentliche Hand), association (Verein), private (Privat)
billing_address abweichende Rechnungsadresse oder null

Objekte#

Filter: customer_id, status (active, archived) sowie limit, cursor, updated_since.

{
  "data": {
    "id": "01k7a3n4q8r2s6t0v4w8x2y6z0",
    "customer_id": "01k7a3m9x2c4d5e6f7g8h9j0k1",
    "number": "O-0042",
    "legacy_number": null,
    "name": "Wohnanlage Lindenhof",
    "status": "active",
    "address": { "street": "Lindenhof 3", "zip": "12345", "city": "Beispielstadt", "country": "DE" },
    "created_at": "2026-03-02T08:20:00+00:00",
    "updated_at": "2026-09-30T13:02:11+00:00"
  }
}

Anlagen#

Filter: customer_id, site_id, asset_type_id, status, number sowie limit, cursor, updated_since.

Der Filter number sucht eine Anlage über ihre SW-Nummer. Leerzeichen, Bindestriche, Unterstriche sowie Groß- und Kleinschreibung spielen keine Rolle: SW17 36033, sw17-36033 und SW1736033 finden dieselbe Anlage.

curl "https://app.revisio-app.net/api/public/v1/assets?number=SW17%2036033" \
  -H "Authorization: Bearer rvs_IhrToken"
{
  "data": [
    {
      "id": "01k7a3p1b5c9d3e7f1g5h9j3k7",
      "number": "SW17 36033",
      "sw_number": "SW17 36033",
      "name": "BMA Haus A",
      "type": { "id": "01k79x1y2z3a4b5c6d7e8f9g0h", "name": "Brandmeldeanlage", "short_name": "BMA", "category": "bma" },
      "customer_id": "01k7a3m9x2c4d5e6f7g8h9j0k1",
      "site_id": "01k7a3n4q8r2s6t0v4w8x2y6z0",
      "manufacturer": "Beispiel Sicherheitstechnik",
      "model": "BZ 500",
      "serial_number": "SN-0815",
      "commissioning_date": "2019-05-14",
      "location": "Technikraum UG",
      "status": "active",
      "created_at": "2026-03-02T08:25:00+00:00",
      "updated_at": "2026-10-14T09:12:40+00:00"
    }
  ],
  "meta": { "limit": 50, "has_more": false, "next_cursor": null },
  "links": { "next": null }
}
Feld Bedeutung
number, sw_number SW-Nummer der Anlage (beide Felder gleich)
type.category Gewerk: bma, ema, saa, rwa, sibe, electrical, hold_open, extinguishing, fire_extinguisher, portable_equipment, nurse_call, video, access_control, other
status planning (in Planung), active (in Betrieb), out_of_service (außer Betrieb), decommissioned (stillgelegt)
commissioning_date Inbetriebnahme als Datum

Komponenten (Melder, Gruppen usw.), Prüfmittel und Dokumente gibt die API nicht aus.

Auftragstypen#

GET /order-types liefert alle aktiven Auftragstypen ohne Blättern. Die id brauchen Sie zum Anlegen eines Auftrags.

Feld Bedeutung
name Bezeichnung, z. B. „Wartung“
category maintenance, testing, service, installation, fault_call, acceptance, commissioning, other
default_duration_minutes geplante Dauer in Minuten oder null

Stammdaten aktuell halten#

  • Einmalig alle Kunden, Objekte und Anlagen holen, danach regelmäßig mit updated_since abgleichen (Ablauf).
  • Die Webhooks customer.created, customer.updated, site.created, site.updated, asset.created und asset.updated melden Änderungen sofort (Ereignisse). Laden Sie danach den Datensatz über seine id.

Schnittstelle (API und Webhooks)

  • API und Webhooks im Überblick

    Was die Schnittstelle kann, wie ein Fremdsystem angebunden wird und wo die technischen Einzelheiten stehen.

  • Grundlagen: Anmeldung, Formate, Blättern, Fehler

    Anmeldung mit Token, Berechtigungen, Datenformate, Blättern mit Cursor, Abgleich mit updated_since, Rate-Limit und Fehlercodes der API.

  • API: Stammdaten

    Kunden, Objekte, Anlagen mit SW-Nummer und Auftragstypen über die API lesen, mit Filtern und allen Feldern.

  • API: Aufträge

    Aufträge über die API abfragen, anlegen und ihren Status ändern, mit Filtern, Feldern, erlaubten Statuswechseln und Beispielen.

  • API: Berichte

    Prüfberichte über die API abfragen und das PDF über einen zeitlich begrenzten, signierten Link laden, zum Beispiel für ERP oder Dokumentenablage.

  • API: Störungen

    Störungen über die API abfragen und melden, mit Statuswerten, Prioritäten, Störungskategorien und Reaktionszeit.

  • Webhooks empfangen und prüfen

    Aufbau einer Webhook-Nachricht, Header, Prüfung der Signatur mit Beispielen für PHP, Node.js und Python, Wiederholungen, Duplikate und Reihenfolge.

  • Webhook-Ereignisse

    Alle Ereignisse, die Revisio per Webhook meldet, wann sie ausgelöst werden und welche Daten sie enthalten.

  • Anwendungsbeispiele

    Typische Anbindungen Schritt für Schritt – ERP-Abrechnung, Berichtsablage im DMS, Störungsmeldung aus einer Leitstelle, Stammdatenabgleich und Wartungsplanung im ERP.

Verwandte Artikel

  • Rechnungen

    Rechnungsentwürfe aus Aufträgen und Vertragspauschalen bearbeiten, festschreiben, als PDF und XRechnung ausgeben, korrigieren, stornieren oder an Lexware Office und sevDesk übergeben.

  • Export für die Buchhaltung

    Abgerechnete Aufträge als DATEV-Buchungsstapel, DATEV-Debitoren oder Rechnungspositionen für lexoffice und sevDesk exportieren und die Konten einstellen.

  • Suche und Befehlspalette

    Mit Strg + K oder „/“ Anlagen, Kunden, Aufträge, Berichte und Seiten finden und häufige Aktionen direkt starten.

  • Anlagen, Kunden und Objekte finden

    Mit der Suche in der Kopfleiste (Strg + K) Anlagen über die SW-Nummer, Kunden, Objekte, Kontakte, Aufträge und Berichte finden.