Zum Hauptinhalt springen

Public API – Trauerfälle

Trauerfälle anlegen, lesen, listen, patchen, archivieren, abschließen und Schritte setzen – inkl. Felder und Codebeispiele.

Verfasst von Support Team

Trauerfälle legst du über die Public API an, aktualisierst sie und steuerst Archivierung, Abschluss und Prozessschritte.

Basis-URL:https://de.rip-app.business/api/public/v1 – Details: Public API – Einstieg & Authentifizierung.

Alle Beispiele brauchen:

Authorization: Bearer rip_pub_DEIN_TOKEN
Accept: application/json

Trauerfall anlegen – POST /cases

Pflichtfelder:first_name, last_name

Feld

Pflicht

Beschreibung

first_name

ja

Vorname (max. 100)

last_name

ja

Nachname (max. 100)

date_of_birth

nein

YYYY-MM-DD

date_of_death

nein

YYYY-MM-DD

burial_type_id

nein

ID aus GET /burial-types

branch_id

nein

ID aus GET /branches

assigned_user_ids

nein

Array von User-IDs aus GET /users (Index 0 = primär)

notes

nein

interne Notiz

addresses

nein

Array mit type = pickup | birth | death

feature_chat_enabled

nein

0 / 1 (Org-Feature chat nötig)

feature_shop_enabled

nein

0 / 1 (Org-Feature endkundenshop nötig)

feature_contact_enabled

nein

0 / 1

feature_map_enabled

nein

Default 1

addresses[]-Eintrag:

{
  "type": "pickup",
  "address": "Musterstraße 1, 12345 Musterstadt",
  "latitude": 48.137154,
  "longitude": 11.576124
}
curl -X POST "https://de.rip-app.business/api/public/v1/cases" \
  -H "Authorization: Bearer rip_pub_DEIN_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "first_name": "Max",
    "last_name": "Mustermann",
    "date_of_birth": "1945-03-12",
    "date_of_death": "2026-07-20",
    "burial_type_id": 3,
    "branch_id": 1,
    "assigned_user_ids": [2],
    "notes": "Familienwunsch: stille Beisetzung",
    "addresses": [
      {
        "type": "pickup",
        "address": "Krankenhaus Musterstadt",
        "latitude": 48.14,
        "longitude": 11.58
      }
    ]
  }'
const base = "https://de.rip-app.business/api/public/v1";

const res = await fetch(`${base}/cases`, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${token}`,
    "Content-Type": "application/json",
    Accept: "application/json",
  },
  body: JSON.stringify({
    first_name: "Max",
    last_name: "Mustermann",
    date_of_death: "2026-07-20",
    burial_type_id: 3,
  }),
});
const { success, data, error } = await res.json();
if (!success) throw new Error(error);
console.log(data.uuid);
console.log(data.customer_link_url);

Antwort 201 – wichtige Felder in data:

  • uuid – stabile ID für alle weiteren Aufrufe

  • customer_link_url – öffentlicher Link für Angehörige

  • deceased_name – wird serverseitig aus Vor- und Nachname gebildet

  • status, steps, addresses, assigned_user_ids, …

Trauerfall lesen – GET /cases/{uuid}

curl -X GET "https://de.rip-app.business/api/public/v1/cases/CASE-UUID" \
  -H "Authorization: Bearer rip_pub_DEIN_TOKEN" \
  -H "Accept: application/json"
const detail = await fetch(`${base}/cases/${caseUuid}`, {
  headers: { Authorization: `Bearer ${token}`, Accept: "application/json" },
}).then((r) => r.json());
console.log(detail.data);

Beispielantwort (gekürzt):

{
  "success": true,
  "data": {
    "uuid": "19b79bbb-d5e5-40f3-b017-b9e472c80bba",
    "first_name": "Max",
    "last_name": "Mustermann",
    "deceased_name": "Max Mustermann",
    "date_of_death": "2026-07-20",
    "status": "active",
    "burial_type_id": 3,
    "current_step_index": 0,
    "customer_link_url": "https://de.rip-app.business/trauerfall/19b79bbb-d5e5-40f3-b017-b9e472c80bba",
    "tag_startcode": null,
    "assigned_user_ids": [2],
    "steps": [],
    "addresses": []
  }
}

Trauerfälle listen – GET /cases

Standard: alle nicht archivierten Fälle. Die Antwort ist nicht paginiert und enthält alle Fälle der Organisation, sortiert nach Anlagedatum (neueste zuerst).

curl -X GET "https://de.rip-app.business/api/public/v1/cases" \
  -H "Authorization: Bearer rip_pub_DEIN_TOKEN" \
  -H "Accept: application/json"

Nur Archivierte:

curl -X GET "https://de.rip-app.business/api/public/v1/cases?status=archived" \
  -H "Authorization: Bearer rip_pub_DEIN_TOKEN" \
  -H "Accept: application/json"

Antwort:

{
  "success": true,
  "count": 2,
  "data": [ { "uuid": "…", "deceased_name": "…", "customer_link_url": "…" } ]
}

Teilupdate – PATCH /cases/{uuid}

Mindestens ein Feld muss gesetzt sein.

Feld

Beschreibung

first_name / last_name

Namen ändern

date_of_birth / date_of_death

Datum oder null zum Löschen

burial_type_id

Bestattungsart (bei Wechsel ohne Step → Step wird zurückgesetzt)

branch_id

Filiale oder null

notes

Notiz

burial_note

Beisetzungsnotiz (max. 500)

assigned_user_ids

Zuweisungen ersetzen ([] = alle entfernen)

status

nur active oder archived

current_step_index

Prozessschritt (braucht burial_type_id)

addresses

Adressen setzen / leerer Eintrag löscht den Typ

feature_*_enabled

Feature-Schalter 0 / 1

curl -X PATCH "https://de.rip-app.business/api/public/v1/cases/CASE-UUID" \
  -H "Authorization: Bearer rip_pub_DEIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "notes": "Familienwunsch: stille Beisetzung",
    "burial_type_id": 3,
    "assigned_user_ids": [2, 5]
  }'
await fetch(`${base}/cases/${caseUuid}`, {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${token}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    notes: "Familienwunsch: stille Beisetzung",
    burial_type_id: 3,
  }),
});

Prozessschritt setzen – POST /cases/{uuid}/step

Setzt nur current_step_index. Die möglichen Schritte stehen im Case unter steps (kommen von der Bestattungsart).

Body (Pflicht):{ "current_step_index": 1 }

curl -X POST "https://de.rip-app.business/api/public/v1/cases/CASE-UUID/step" \
  -H "Authorization: Bearer rip_pub_DEIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "current_step_index": 1 }'
await fetch(`${base}/cases/${caseUuid}/step`, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${token}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ current_step_index: 1 }),
});

Archivieren – POST /cases/{uuid}/archive

Kein Body nötig. Setzt status auf archived.

curl -X POST "https://de.rip-app.business/api/public/v1/cases/CASE-UUID/archive" \
  -H "Authorization: Bearer rip_pub_DEIN_TOKEN"
await fetch(`${base}/cases/${caseUuid}/archive`, {
  method: "POST",
  headers: { Authorization: `Bearer ${token}` },
});

Hard-Delete gibt es in der Public API nicht – nutze Archivieren.

Abschließen – POST /cases/{uuid}/complete

Markiert den Fall als abgeschlossen. Pflicht: Koordinaten der Beisetzung.

Feld

Pflicht

Beschreibung

burial_latitude

ja

Breitengrad

burial_longitude

ja

Längengrad

burial_address

nein

Adresse / Ortsangabe

burial_note

nein

Zusatznotiz

Bereits abgeschlossene Fälle → 409.

curl -X POST "https://de.rip-app.business/api/public/v1/cases/CASE-UUID/complete" \
  -H "Authorization: Bearer rip_pub_DEIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "burial_latitude": 48.137154,
    "burial_longitude": 11.576124,
    "burial_address": "Friedhof Musterstadt",
    "burial_note": "Baum 42"
  }'
await fetch(`${base}/cases/${caseUuid}/complete`, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${token}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    burial_latitude: 48.137154,
    burial_longitude: 11.576124,
    burial_address: "Friedhof Musterstadt",
  }),
});

Typischer Ablauf (JavaScript)

const base = "https://de.rip-app.business/api/public/v1";
const headers = {
  Authorization: `Bearer ${token}`,
  "Content-Type": "application/json",
  Accept: "application/json",
};

// 1) Bestattungsarten laden
const types = await fetch(`${base}/burial-types`, { headers }).then((r) => r.json());

// 2) Fall anlegen
const created = await fetch(`${base}/cases`, {
  method: "POST",
  headers,
  body: JSON.stringify({
    first_name: "Max",
    last_name: "Mustermann",
    date_of_death: "2026-07-20",
    burial_type_id: types.data[0]?.id,
  }),
}).then((r) => r.json());

if (!created.success) throw new Error(created.error);
const caseUuid = created.data.uuid;

// 3) Schritt setzen
await fetch(`${base}/cases/${caseUuid}/step`, {
  method: "POST",
  headers,
  body: JSON.stringify({ current_step_index: 1 }),
});

console.log(created.data.customer_link_url);
Hat dies deine Frage beantwortet?