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_sinceabgleichen (Ablauf). - Die Webhooks
customer.created,customer.updated,site.created,site.updated,asset.createdundasset.updatedmelden Änderungen sofort (Ereignisse). Laden Sie danach den Datensatz über seineid.