Initial Setup
Ces endpoints de l'API timum servent à la configuration initiale unique de votre structure organisationnelle : créez des Users, Accounts et Providers.
Ordre de configuration :
- User - Personne disposant d'identifiants de connexion
- Account - Client/entreprise (nécessite un User comme propriétaire)
- Provider - Profil de calendrier (nécessite un User comme propriétaire)
- Staff - Ajouter des employés au Provider (optionnel)
Users
Un User représente une personne disposant d'identifiants de connexion, de droits d'accès et de coordonnées. Les Users peuvent être propriétaires d'Accounts et de Providers, et peuvent également agir en tant que Staff ou personne de contact.
Create User
Crée un nouveau User ou renvoie un User existant si la référence est déjà connue.
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"
}'
Paramètres de chemin
| Paramètre | Type | Description |
|---|---|---|
crmId | string | Votre identifiant CRM (attribué lors de l'intégration) |
Request Body
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
reference | string | Oui | Référence unique au format uniqueId@platformName. Utilisez l'ID sous lequel vous gérez ce User dans votre système. |
email | string | Oui | Adresse e-mail. Doit être unique dans timum. En cas de doublon : si une référence différente est envoyée, un e-mail généré est créé (p. ex. max+001@example.com). |
username | string | Oui | Nom d'utilisateur de connexion. Doit être unique. Les caractères suivants ne sont pas autorisés : /?:&#\ |
lastName | string | Oui | Nom de famille du User |
firstName | string | Non | Prénom du User |
phone | string | Non | Numéro de téléphone fixe |
mobile | string | Non | Numéro de mobile |
Algorithme / Comportement
- La référence existe déjà : Renvoie le User existant (200 OK). Les champs
phone,mobile,lastName,firstNamesont mis à jour. - L'e-mail existe avec une référence différente : Un nouveau User est créé avec un e-mail généré (p. ex.
max+001@example.com). - L'e-mail existe sans référence : Le User existant est utilisé. Sa vérification d'e-mail est invalidée, un nouvel e-mail de vérification est envoyé, et la référence est rattachée.
- Nouveau User : Le User est créé (201 Created). La langue est reprise de l'utilisateur CRM à l'origine de l'action (peut être remplacée via le cookie
PLAY_LANG).
Response
{
"api-info": {
"version": "1"
},
"user": {
"reference": "12345@yourCrm",
"email": "max@example.com",
"username": "maxmustermann",
"firstName": "Max",
"lastName": "Mustermann",
"phone": null,
"mobile": null
}
}
{
"api-info": {
"version": "1"
},
"user": {
"reference": "12345@yourCrm",
"email": "max@example.com",
"username": "maxmustermann",
"firstName": "Max",
"lastName": "Mustermann",
"phone": null,
"mobile": null
}
}
Erreurs
| Statut | Cause |
|---|---|
400 | Champ obligatoire manquant, nul ou vide |
409 | E-mail ou nom d'utilisateur déjà pris. Message d'erreur : "User with given email already exists." ou "User with given username already exists." |
Get User
Récupère un User à partir de sa référence.
curl -X GET "https://www.timum.de/crms/{crmId}/user/12345@yourCrm" \
-H "X-TIMUM-CLIENT-ID: your-api-key"
Paramètres de chemin
| Paramètre | Type | Description |
|---|---|---|
crmId | string | Votre identifiant CRM |
reference | string | La référence du User (encodée pour l'URL en cas de caractères spéciaux) |
Response
{
"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"
}
}
Erreurs
| Statut | Cause |
|---|---|
404 | Aucun User trouvé avec cette référence |
Accounts
Un Account représente un client dans timum avec un plan de service souscrit et des données de facturation. Chaque Account appartient à un User (propriétaire).
Create Account
Crée un nouvel Account ou renvoie un Account existant si la référence est déjà connue.
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
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
ownerReference | string | Oui | Référence du User qui devient propriétaire de cet Account. Le User doit déjà exister. |
accountReference | string | Oui | Référence unique pour cet Account au format uniqueId@platformName. |
branch | string | Oui | Secteur d'activité de l'entreprise. Valeurs autorisées : real-estate - Immobilier ; facilities - Facility management ; handyman - Artisanat ; sports-and-leisure - Sport & loisirs ; misc - Autre |
invoiceAddress | object | Non | Adresse de facturation. Si elle est fournie, tous les sous-champs sont obligatoires : city, countryCode, street, number, zip |
invoiceContactName | string | Non | Nom du destinataire de la facture |
invoiceCompanyName | string | Non | Nom de l'entreprise |
invoiceTaxId | string | Non | Numéro de TVA |
email | string | Non | Adresse e-mail pour les factures |
Algorithme / Comportement
- accountReference inconnue : Un nouvel Account est créé (201 Created).
- accountReference déjà connue : L'Account existant est renvoyé (200 OK). Les champs de l'Account existant ne sont pas écrasés.
Response
{
"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"
}
}
Erreurs
| Statut | Cause | Message |
|---|---|---|
400 | Champ obligatoire manquant ou vide | - |
404 | User propriétaire introuvable | "no user found for ownerReference" |
404 | Secteur d'activité invalide | "Unable to find specified branch. Was {givenBranch}..." |
404 | Format de référence invalide | "Unable to parse account reference. Was {givenReference}..." |
Get Account
Récupère un Account à partir de sa référence.
curl -X GET "https://www.timum.de/crms/{crmId}/account/acc-001@yourCrm" \
-H "X-TIMUM-CLIENT-ID: your-api-key"
Response
{
"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"
}
}
Erreurs
| Statut | Cause |
|---|---|
404 | Aucun Account trouvé avec cette référence |
Providers
Un Provider représente un profil de calendrier contenant des ressources et des services (Products). Les Providers ont des membres du Staff (Users) qui ont accès au Provider.
Create Provider
Crée un nouveau Provider.
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
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
reference | string | Oui | Référence unique du Provider |
ownerReference | string | Oui | Référence du User qui devient propriétaire |
accountReference | string | Oui | Référence de l'Account associé |
name | string | Oui | Nom d'affichage du Provider |
email | string | Non | E-mail de contact |
mobile | string | Non | Numéro de mobile |
phone | string | Non | Numéro de téléphone |
impressum | string | Non | Texte de mentions légales |
branch | string | Non | Secteur d'activité (voir Account) |
subbranch | string | Non | Sous-secteur (p. ex. "IS24PROFI") |
Response
{
"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
Récupère un Provider à partir de sa référence.
curl -X GET "https://www.timum.de/crms/{crmId}/provider/prov-001@yourCrm" \
-H "X-TIMUM-CLIENT-ID: your-api-key"
Response
Renvoie les données du Provider (comme pour Create Provider).
Erreurs
| Statut | Cause |
|---|---|
404 | Aucun Provider trouvé avec cette référence |
Staff
Le Staff désigne des Users associés à un Provider et ayant accès à son calendrier.
List Staff
Liste tous les membres du Staff d'un Provider.
curl -X GET "https://www.timum.de/crms/{crmId}/provider/prov-001@yourCrm/staff" \
-H "X-TIMUM-CLIENT-ID: your-api-key"
Paramètres de chemin
| Paramètre | Type | Description |
|---|---|---|
crmId | string | Votre identifiant CRM |
providerRef | string | Référence du Provider |
Response
[
{
"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"
}
]
Réponse sous forme de tableau :
api-info.Étapes suivantes
Une fois votre structure organisationnelle configurée, vous pouvez :
- Configurer les Offerings - créer des ressources, produits et profils de contact
- Configurer le Scheduling - créer des disponibilités et des rendez-vous
