Initial Setup

Diese Endpunkte dienen der einmaligen Einrichtung Ihrer Organisationsstruktur in timum. Erstellen Sie Users, Accounts und Providers, bevor Sie Ressourcen und Termine verwalten können.

Einrichtungsreihenfolge

Die Entitäten hängen voneinander ab. Erstellen Sie sie in dieser Reihenfolge:
  1. User - Person mit Login-Daten
  2. Account - Mandant/Unternehmen (benötigt User als Owner)
  3. Provider - Kalenderprofil (benötigt User als Owner)
  4. Staff - Mitarbeiter zum Provider hinzufügen (optional)

Users

Ein User repräsentiert eine Person mit Login-Credentials, Zugriffsrechten und Kontaktdaten. Users können Eigentümer von Accounts und Providern sein sowie als Staff oder Kontaktperson fungieren.

Create User

Erstellt einen neuen User oder gibt einen existierenden zurück, falls die Referenz bereits bekannt ist.

POST /crms/:crmId/userbash
curl -X POST "https://www.timum.de/crms/{crmId}/user" \
  -H "X-TIMUM-CLIENT-ID: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "reference": "12345@yourCrm",
    "email": "max@example.com",
    "username": "maxmustermann",
    "firstName": "Max",
    "lastName": "Mustermann",
    "phone": "+49 30 12345678",
    "mobile": "+49 170 1234567"
  }'

Pfad-Parameter

ParameterTypBeschreibung
crmIdstringIhre CRM-Kennung (wird bei der Integration vergeben)

Request Body

FeldTypPflichtBeschreibung
referencestringJaEindeutige Referenz im Format uniqueId@platformName. Verwenden Sie die ID, unter der Sie diesen User in Ihrem System führen.
emailstringJaE-Mail-Adresse. Muss in timum eindeutig sein. Bei Duplikat: Wenn eine andere Referenz gesendet wird, wird eine generierte Email erstellt (z.B. max+001@example.com).
usernamestringJaLogin-Benutzername. Muss eindeutig sein. Folgende Zeichen sind nicht erlaubt: /?:&#\
lastNamestringJaNachname des Users
firstNamestringNeinVorname des Users
phonestringNeinFestnetznummer
mobilestringNeinMobilnummer

Algorithmus / Verhalten

  • Referenz existiert bereits: Gibt den existierenden User zurück (200 OK). Die Felder phone, mobile, lastName, firstName werden aktualisiert.
  • Email existiert mit anderer Referenz: Ein neuer User mit generierter Email wird erstellt (z.B. max+001@example.com).
  • Email existiert ohne Referenz: Der existierende User wird verwendet. Seine Email-Verifizierung wird invalidiert, eine neue Verifizierungs-Mail wird gesendet, und die Referenz wird angehängt.
  • Neuer User: User wird erstellt (201 Created). Die Sprache wird vom CRM-Actor-User übernommen (überschreibbar via Cookie PLAY_LANG).

Response

201 Created - Neuer Userjson
{
  "api-info": {
    "version": "1"
  },
  "user": {
    "reference": "12345@yourCrm",
    "email": "max@example.com",
    "username": "maxmustermann",
    "firstName": "Max",
    "lastName": "Mustermann",
    "phone": null,
    "mobile": null
  }
}
200 OK - Existierender Userjson
{
  "api-info": {
    "version": "1"
  },
  "user": {
    "reference": "12345@yourCrm",
    "email": "max@example.com",
    "username": "maxmustermann",
    "firstName": "Max",
    "lastName": "Mustermann",
    "phone": null,
    "mobile": null
  }
}

Fehler

StatusUrsache
400Pflichtfeld fehlt, ist null oder leer
409Email oder Username bereits vergeben. Fehlermeldung: "User with given email already exists." oder "User with given username already exists."

Get User

Ruft einen User anhand seiner Referenz ab.

GET /crms/:crmId/user/:referencebash
curl -X GET "https://www.timum.de/crms/{crmId}/user/12345@yourCrm" \
  -H "X-TIMUM-CLIENT-ID: your-api-key"

Pfad-Parameter

ParameterTypBeschreibung
crmIdstringIhre CRM-Kennung
referencestringDie User-Referenz (URL-encoded falls Sonderzeichen)

Response

200 OKjson
{
  "api-info": {
    "version": "1"
  },
  "user": {
    "reference": "12345@yourCrm",
    "email": "max@example.com",
    "username": "maxmustermann",
    "firstName": "Max",
    "lastName": "Mustermann",
    "phone": "+49 30 12345678",
    "mobile": "+49 170 1234567"
  }
}

Fehler

StatusUrsache
404Kein User mit dieser Referenz gefunden

Accounts

Ein Account repräsentiert einen Mandanten in timum mit gebuchtem Service-Plan und Rechnungsdaten. Jeder Account gehört einem User (Owner).

Create Account

Erstellt einen neuen Account oder gibt einen existierenden zurück, falls die Referenz bereits bekannt ist.

POST /crms/:crmId/accountbash
curl -X POST "https://www.timum.de/crms/{crmId}/account" \
  -H "X-TIMUM-CLIENT-ID: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "ownerReference": "12345@yourCrm",
    "accountReference": "acc-001@yourCrm",
    "branch": "real-estate",
    "invoiceAddress": {
      "city": "Berlin",
      "countryCode": "DE",
      "street": "Musterstraße",
      "number": "28",
      "zip": "10115"
    },
    "invoiceContactName": "Max Mustermann",
    "invoiceCompanyName": "Mustermann Immobilien GmbH",
    "invoiceTaxId": "DE123456789",
    "email": "buchhaltung@example.com"
  }'

Request Body

FeldTypPflichtBeschreibung
ownerReferencestringJaReferenz des Users, der Eigentümer dieses Accounts wird. Der User muss bereits existieren.
accountReferencestringJaEindeutige Referenz für diesen Account im Format uniqueId@platformName.
branchstringJaBranche des Unternehmens. Erlaubte Werte:
  • real-estate - Immobilien
  • facilities - Facility Management
  • handyman - Handwerk
  • sports-and-leisure - Sport & Freizeit
  • misc - Sonstiges
invoiceAddressobjectNeinRechnungsadresse. Wenn angegeben, sind alle Unterfelder Pflicht: city, countryCode, street,number, zip
invoiceContactNamestringNeinName des Rechnungsempfängers
invoiceCompanyNamestringNeinFirmenname
invoiceTaxIdstringNeinUmsatzsteuer-ID
emailstringNeinE-Mail-Adresse für Rechnungen

Algorithmus / Verhalten

  • accountReference unbekannt: Neuer Account wird erstellt (201 Created).
  • accountReference bereits bekannt: Existierender Account wird zurückgegeben (200 OK). Die Felder des existierenden Accounts werden nicht überschrieben.

Response

201 Createdjson
{
  "api-info": {
    "version": "1"
  },
  "account": {
    "ownerReference": "12345@yourCrm",
    "branch": "real-estate",
    "accountReference": "acc-001@yourCrm",
    "invoiceAddress": {
      "city": "Berlin",
      "countryCode": "DE",
      "street": "Musterstraße",
      "number": "28",
      "zip": "10115"
    },
    "invoiceContactName": "Max Mustermann",
    "invoiceCompanyName": "Mustermann Immobilien GmbH",
    "invoiceTaxId": "DE123456789",
    "email": "buchhaltung@example.com"
  }
}

Fehler

StatusUrsacheMeldung
400Pflichtfeld fehlt oder leer-
404Owner-User nicht gefunden"no user found for ownerReference"
404Ungültige Branche"Unable to find specified branch. Was {givenBranch}..."
404Ungültiges Referenz-Format"Unable to parse account reference. Was {givenReference}..."

Get Account

Ruft einen Account anhand seiner Referenz ab.

GET /crms/:crmId/account/:referencebash
curl -X GET "https://www.timum.de/crms/{crmId}/account/acc-001@yourCrm" \
  -H "X-TIMUM-CLIENT-ID: your-api-key"

Response

200 OKjson
{
  "api-info": {
    "version": "1"
  },
  "account": {
    "ownerReference": "12345@yourCrm",
    "branch": "real-estate",
    "accountReference": "acc-001@yourCrm",
    "invoiceAddress": {
      "city": "Berlin",
      "countryCode": "DE",
      "street": "Musterstraße",
      "number": "28",
      "zip": "10115"
    },
    "invoiceContactName": "Max Mustermann",
    "invoiceCompanyName": "Mustermann Immobilien GmbH",
    "invoiceTaxId": "DE123456789",
    "email": "buchhaltung@example.com"
  }
}

Fehler

StatusUrsache
404Kein Account mit dieser Referenz gefunden

Providers

Ein Provider repräsentiert ein Kalenderprofil, das Ressourcen und Services (Products) enthält. Providers haben Staff-Mitglieder (Users), die Zugriff auf den Provider haben.

Create Provider

Erstellt einen neuen Provider.

POST /crms/:crmId/providerbash
curl -X POST "https://www.timum.de/crms/{crmId}/provider" \
  -H "X-TIMUM-CLIENT-ID: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "reference": "prov-001@yourCrm",
    "ownerReference": "12345@yourCrm",
    "accountReference": "acc-001@yourCrm",
    "name": "Mustermann Immobilien",
    "email": "kontakt@mustermann-immo.de",
    "mobile": "+49 170 1234567",
    "phone": "+49 30 12345678",
    "impressum": "Mustermann Immobilien GmbH, Musterstraße 28, 10115 Berlin",
    "branch": "real-estate",
    "subbranch": "IS24PROFI"
  }'

Request Body

FeldTypPflichtBeschreibung
referencestringJaEindeutige Provider-Referenz
ownerReferencestringJaReferenz des Users, der Eigentümer wird
accountReferencestringJaReferenz des zugehörigen Accounts
namestringJaAnzeigename des Providers
emailstringNeinKontakt-E-Mail
mobilestringNeinMobilnummer
phonestringNeinTelefonnummer
impressumstringNeinImpressum-Text
branchstringNeinBranche (siehe Account)
subbranchstringNeinUnterbranche (z.B. "IS24PROFI")

Response

201 Createdjson
{
  "api-info": {
    "version": "1"
  },
  "provider": {
    "uuid": "0a3006b0-43c7-11e4-96eb-06df9a948f2f",
    "reference": "prov-001@yourCrm",
    "name": "Mustermann Immobilien",
    "email": "kontakt@mustermann-immo.de",
    "mobile": "+49 170 1234567",
    "phone": "+49 30 12345678",
    "impressum": "Mustermann Immobilien GmbH, Musterstraße 28, 10115 Berlin",
    "branch": "real-estate",
    "subbranch": "IS24PROFI"
  }
}

Get Provider

Ruft einen Provider anhand seiner Referenz ab.

GET /crms/:crmId/provider/:referencebash
curl -X GET "https://www.timum.de/crms/{crmId}/provider/prov-001@yourCrm" \
  -H "X-TIMUM-CLIENT-ID: your-api-key"

Response

Gibt die Provider-Daten zurück (wie bei Create Provider).

Fehler

StatusUrsache
404Kein Provider mit dieser Referenz gefunden

Staff

Staff sind Users, die einem Provider zugeordnet sind und Zugriff auf dessen Kalender haben.

List Staff

Listet alle Staff-Mitglieder eines Providers auf.

GET /crms/:crmId/provider/:providerRef/staffbash
curl -X GET "https://www.timum.de/crms/{crmId}/provider/prov-001@yourCrm/staff" \
  -H "X-TIMUM-CLIENT-ID: your-api-key"

Pfad-Parameter

ParameterTypBeschreibung
crmIdstringIhre CRM-Kennung
providerRefstringProvider-Referenz

Response

200 OKjson
[
  {
    "reference": "user-123@yourCrm",
    "email": "thomas@example.com",
    "username": "thomas.anderson",
    "firstName": "Thomas",
    "lastName": "Anderson",
    "phone": "030 1101011",
    "mobile": "+49 170 1234567"
  },
  {
    "reference": "user-456@yourCrm",
    "email": "forrest@example.com",
    "username": "forrest.gump",
    "firstName": "Forrest",
    "lastName": "Gump",
    "phone": "030 123456789",
    "mobile": "+49 170 9876543"
  }
]

Array-Response

Im Gegensatz zu anderen Endpunkten gibt dieser Endpunkt direkt ein Array zurück, nicht ein Objekt mit api-info Wrapper.

Nächste Schritte

Nach der Einrichtung Ihrer Organisationsstruktur können Sie:

Verwandte Themen

War diese Seite hilfreich?