Diese Endpoints liefern IDs und Stammdaten deiner Organisation – typischerweise vor dem Anlegen eines Trauerfalls oder Dokument-Uploads.
Basis-URL:https://de.rip-app.business/api/public/v1 – Details: Public API – Einstieg & Authentifizierung.
Alle sind reine GET-Requests mit Bearer-Token und liefern { "success": true, "data": [ … ] } ohne count.
Bestattungsarten – GET /burial-types
Liefert die Bestattungsarten deiner Organisation. Die id brauchst du als burial_type_id beim Anlegen oder Aktualisieren eines Falls.
curl -X GET "https://de.rip-app.business/api/public/v1/burial-types" \ -H "Authorization: Bearer rip_pub_DEIN_TOKEN" \ -H "Accept: application/json"
const base = "https://de.rip-app.business/api/public/v1";
const types = await fetch(`${base}/burial-types`, {
headers: { Authorization: `Bearer ${token}`, Accept: "application/json" },
}).then((r) => r.json());
console.log(types.data);
Antwort:
{
"success": true,
"data": [
{
"id": 3,
"uuid": "…",
"name": "Erdbestattung",
"color_primary": "#4A5568",
"color_secondary": "#E2E8F0"
}
]
}
Sortierung: nach Name. Die Prozessschritte eines Falls (steps in der Case-Antwort) hängen von der gewählten Bestattungsart ab.
Filialen – GET /branches
id → Feld branch_id am Trauerfall.
curl -X GET "https://de.rip-app.business/api/public/v1/branches" \ -H "Authorization: Bearer rip_pub_DEIN_TOKEN" \ -H "Accept: application/json"
const branches = await fetch(`${base}/branches`, {
headers: { Authorization: `Bearer ${token}`, Accept: "application/json" },
}).then((r) => r.json());
Antwort:
{
"success": true,
"data": [
{
"id": 1,
"uuid": "…",
"label": "Hauptfiliale",
"street": "Musterstraße 1",
"zip": "12345",
"city": "Musterstadt",
"country": "DE",
"phone": "+49 …",
"email": "[email protected]",
"is_default": 1
}
]
}
Sortierung: Standard-Filiale zuerst, dann nach Name.
Mitarbeiter – GET /users
id → Array assigned_user_ids am Trauerfall (Index 0 = primäre Zuweisung).
curl -X GET "https://de.rip-app.business/api/public/v1/users" \ -H "Authorization: Bearer rip_pub_DEIN_TOKEN" \ -H "Accept: application/json"
const users = await fetch(`${base}/users`, {
headers: { Authorization: `Bearer ${token}`, Accept: "application/json" },
}).then((r) => r.json());
Antwort:
{
"success": true,
"data": [
{
"id": 2,
"first_name": "Max",
"last_name": "Mustermann",
"email": "[email protected]",
"role": "owner"
}
]
}
role ist owner, admin oder member.
Dokument-Tags – GET /document-tags
id → Feld tag_ids beim Dokument-Upload.
curl -X GET "https://de.rip-app.business/api/public/v1/document-tags" \ -H "Authorization: Bearer rip_pub_DEIN_TOKEN" \ -H "Accept: application/json"
const tags = await fetch(`${base}/document-tags`, {
headers: { Authorization: `Bearer ${token}`, Accept: "application/json" },
}).then((r) => r.json());
Antwort:
{
"success": true,
"data": [
{
"id": 1,
"uuid": "…",
"name": "Sterbeurkunde",
"is_system": 1
}
]
}
System-Tags (is_system: 1) stehen zuerst, danach eigene Tags nach Name.
Praxisbeispiel: IDs vor dem Anlegen auflösen
const base = "https://de.rip-app.business/api/public/v1";
const headers = {
Authorization: `Bearer ${token}`,
Accept: "application/json",
"Content-Type": "application/json",
};
const [types, branches, users] = await Promise.all([
fetch(`${base}/burial-types`, { headers }).then((r) => r.json()),
fetch(`${base}/branches`, { headers }).then((r) => r.json()),
fetch(`${base}/users`, { headers }).then((r) => r.json()),
]);
const burialTypeId = types.data.find((t) => t.name === "Erdbestattung")?.id;
const branchId = branches.data.find((b) => b.is_default)?.id ?? branches.data[0]?.id;
const assigneeId = users.data[0]?.id;
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: burialTypeId,
branch_id: branchId,
assigned_user_ids: assigneeId ? [assigneeId] : [],
}),
}).then((r) => r.json());
if (!created.success) throw new Error(created.error);
console.log(created.data.uuid);
Die IDs sind pro Organisation stabil – du kannst sie in deiner Integration zwischenspeichern und nicht bei jedem Request neu laden.