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 |
| ja | Vorname (max. 100) |
| ja | Nachname (max. 100) |
| nein |
|
| nein |
|
| nein | ID aus |
| nein | ID aus |
| nein | Array von User-IDs aus |
| nein | interne Notiz |
| nein | Array mit |
| nein |
|
| nein |
|
| nein |
|
| nein | Default |
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 Aufrufecustomer_link_url– öffentlicher Link für Angehörigedeceased_name– wird serverseitig aus Vor- und Nachname gebildetstatus,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 |
| Namen ändern |
| Datum oder |
| Bestattungsart (bei Wechsel ohne Step → Step wird zurückgesetzt) |
| Filiale oder |
| Notiz |
| Beisetzungsnotiz (max. 500) |
| Zuweisungen ersetzen ( |
| nur |
| Prozessschritt (braucht |
| Adressen setzen / leerer Eintrag löscht den Typ |
| Feature-Schalter |
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 |
| ja | Breitengrad |
| ja | Längengrad |
| nein | Adresse / Ortsangabe |
| 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);