Initial Setup
Questi endpoint dell'API timum servono per la configurazione iniziale una tantum della struttura organizzativa: crei Users, Accounts e Providers.
Ordine di configurazione:
- User - Persona con credenziali di accesso
- Account - Cliente/azienda (richiede uno User come proprietario)
- Provider - Profilo calendario (richiede uno User come proprietario)
- Staff - Aggiungere dipendenti al Provider (opzionale)
Users
Uno User rappresenta una persona con credenziali di accesso, diritti di accesso e dati di contatto. Gli Users possono essere proprietari di Accounts e Providers, oltre a fungere da Staff o da persona di contatto.
Create User
Crea un nuovo User o restituisce quello esistente se il riferimento è già noto.
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"
}'
Parametri del percorso
| Parametro | Tipo | Descrizione |
|---|---|---|
crmId | string | Il suo identificativo CRM (assegnato durante l'integrazione) |
Request Body
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
reference | string | Sì | Riferimento univoco nel formato uniqueId@platformName. Utilizzi l'ID con cui gestisce questo User nel suo sistema. |
email | string | Sì | Indirizzo email. Deve essere univoco in timum. In caso di duplicato: se viene inviato un riferimento diverso, viene creata un'email generata (ad es. max+001@example.com). |
username | string | Sì | Nome utente di accesso. Deve essere univoco. I seguenti caratteri non sono consentiti: /?:&#\ |
lastName | string | Sì | Cognome dello User |
firstName | string | No | Nome dello User |
phone | string | No | Numero di telefono fisso |
mobile | string | No | Numero di cellulare |
Algoritmo / Comportamento
- Il riferimento esiste già: Restituisce lo User esistente (200 OK). I campi
phone,mobile,lastName,firstNamevengono aggiornati. - L'email esiste con un riferimento diverso: Viene creato un nuovo User con un'email generata (ad es.
max+001@example.com). - L'email esiste senza riferimento: Viene utilizzato lo User esistente. La sua verifica email viene invalidata, viene inviata una nuova email di verifica e il riferimento viene collegato.
- Nuovo User: Lo User viene creato (201 Created). La lingua viene ripresa dall'utente CRM che esegue l'azione (sovrascrivibile tramite il 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
}
}
Errori
| Stato | Causa |
|---|---|
400 | Campo obbligatorio mancante, nullo o vuoto |
409 | Email o nome utente già in uso. Messaggio di errore: "User with given email already exists." oppure "User with given username already exists." |
Get User
Recupera uno User in base al suo riferimento.
curl -X GET "https://www.timum.de/crms/{crmId}/user/12345@yourCrm" \
-H "X-TIMUM-CLIENT-ID: your-api-key"
Parametri del percorso
| Parametro | Tipo | Descrizione |
|---|---|---|
crmId | string | Il suo identificativo CRM |
reference | string | Il riferimento dello User (con codifica URL se contiene caratteri speciali) |
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"
}
}
Errori
| Stato | Causa |
|---|---|
404 | Nessuno User trovato con questo riferimento |
Accounts
Un Account rappresenta un cliente in timum con un piano di servizio sottoscritto e dati di fatturazione. Ogni Account appartiene a uno User (proprietario).
Create Account
Crea un nuovo Account o restituisce quello esistente se il riferimento è già noto.
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
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
ownerReference | string | Sì | Riferimento dello User che diventa proprietario di questo Account. Lo User deve già esistere. |
accountReference | string | Sì | Riferimento univoco per questo Account nel formato uniqueId@platformName. |
branch | string | Sì | Settore dell'azienda. Valori consentiti: real-estate - Immobiliare; facilities - Facility management; handyman - Artigianato; sports-and-leisure - Sport e tempo libero; misc - Altro |
invoiceAddress | object | No | Indirizzo di fatturazione. Se indicato, tutti i sottocampi sono obbligatori: city, countryCode, street, number, zip |
invoiceContactName | string | No | Nome del destinatario della fattura |
invoiceCompanyName | string | No | Nome dell'azienda |
invoiceTaxId | string | No | Partita IVA |
email | string | No | Indirizzo email per le fatture |
Algoritmo / Comportamento
- accountReference sconosciuta: Viene creato un nuovo Account (201 Created).
- accountReference già nota: Viene restituito l'Account esistente (200 OK). I campi dell'Account esistente non vengono sovrascritti.
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"
}
}
Errori
| Stato | Causa | Messaggio |
|---|---|---|
400 | Campo obbligatorio mancante o vuoto | - |
404 | User proprietario non trovato | "no user found for ownerReference" |
404 | Settore non valido | "Unable to find specified branch. Was {givenBranch}..." |
404 | Formato di riferimento non valido | "Unable to parse account reference. Was {givenReference}..." |
Get Account
Recupera un Account in base al suo riferimento.
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"
}
}
Errori
| Stato | Causa |
|---|---|
404 | Nessun Account trovato con questo riferimento |
Providers
Un Provider rappresenta un profilo calendario che contiene risorse e servizi (Products). I Providers hanno membri dello Staff (Users) che hanno accesso al Provider.
Create Provider
Crea un nuovo 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
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
reference | string | Sì | Riferimento univoco del Provider |
ownerReference | string | Sì | Riferimento dello User che diventa proprietario |
accountReference | string | Sì | Riferimento dell'Account associato |
name | string | Sì | Nome visualizzato del Provider |
email | string | No | Email di contatto |
mobile | string | No | Numero di cellulare |
phone | string | No | Numero di telefono |
impressum | string | No | Testo delle note legali |
branch | string | No | Settore (vedi Account) |
subbranch | string | No | Sotto-settore (ad es. "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
Recupera un Provider in base al suo riferimento.
curl -X GET "https://www.timum.de/crms/{crmId}/provider/prov-001@yourCrm" \
-H "X-TIMUM-CLIENT-ID: your-api-key"
Response
Restituisce i dati del Provider (come in Create Provider).
Errori
| Stato | Causa |
|---|---|
404 | Nessun Provider trovato con questo riferimento |
Staff
Lo Staff è costituito da Users assegnati a un Provider e che hanno accesso al suo calendario.
List Staff
Elenca tutti i membri dello Staff di un Provider.
curl -X GET "https://www.timum.de/crms/{crmId}/provider/prov-001@yourCrm/staff" \
-H "X-TIMUM-CLIENT-ID: your-api-key"
Parametri del percorso
| Parametro | Tipo | Descrizione |
|---|---|---|
crmId | string | Il suo identificativo CRM |
providerRef | string | Riferimento del 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"
}
]
Risposta in formato array:
api-info.Prossimi passi
Dopo aver configurato la struttura organizzativa, può:
- Configurare le Offerings - creare risorse, prodotti e profili di contatto
- Configurare lo Scheduling - creare disponibilità e appuntamenti
