Initial Setup
Estos endpoints de la API de timum sirven para la configuración inicial única de su estructura organizativa: cree Users, Accounts y Providers.
Orden de configuración:
- User - Persona con datos de acceso
- Account - Cliente/empresa (requiere un User como propietario)
- Provider - Perfil de calendario (requiere un User como propietario)
- Staff - Añadir empleados al Provider (opcional)
Users
Un User representa una persona con credenciales de acceso, permisos y datos de contacto. Los Users pueden ser propietarios de Accounts y Providers, y también pueden actuar como Staff o como persona de contacto.
Create User
Crea un nuevo User o devuelve uno existente si la referencia ya es conocida.
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"
}'
Parámetros de ruta
| Parámetro | Tipo | Descripción |
|---|---|---|
crmId | string | Su identificador de CRM (asignado durante la integración) |
Request Body
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
reference | string | Sí | Referencia única en el formato uniqueId@platformName. Utilice el ID con el que gestiona este User en su sistema. |
email | string | Sí | Dirección de correo electrónico. Debe ser única en timum. En caso de duplicado: si se envía una referencia distinta, se crea un correo generado (p. ej. max+001@example.com). |
username | string | Sí | Nombre de usuario de acceso. Debe ser único. No se permiten los siguientes caracteres: /?:&#\ |
lastName | string | Sí | Apellido del User |
firstName | string | No | Nombre del User |
phone | string | No | Número de teléfono fijo |
mobile | string | No | Número de móvil |
Algoritmo / Comportamiento
- La referencia ya existe: Devuelve el User existente (200 OK). Se actualizan los campos
phone,mobile,lastName,firstName. - El correo existe con una referencia distinta: Se crea un nuevo User con un correo generado (p. ej.
max+001@example.com). - El correo existe sin referencia: Se utiliza el User existente. Se invalida su verificación de correo, se envía un nuevo correo de verificación y se adjunta la referencia.
- Nuevo User: Se crea el User (201 Created). El idioma se toma del usuario CRM que ejecuta la acción (se puede sobrescribir mediante la 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
}
}
Errores
| Estado | Causa |
|---|---|
400 | Falta un campo obligatorio, es nulo o está vacío |
409 | El correo o el nombre de usuario ya están en uso. Mensaje de error: "User with given email already exists." o "User with given username already exists." |
Get User
Recupera un User a partir de su referencia.
curl -X GET "https://www.timum.de/crms/{crmId}/user/12345@yourCrm" \
-H "X-TIMUM-CLIENT-ID: your-api-key"
Parámetros de ruta
| Parámetro | Tipo | Descripción |
|---|---|---|
crmId | string | Su identificador de CRM |
reference | string | La referencia del User (codificada para URL si contiene caracteres especiales) |
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"
}
}
Errores
| Estado | Causa |
|---|---|
404 | No se encontró ningún User con esta referencia |
Accounts
Un Account representa un cliente en timum con un plan de servicio contratado y datos de facturación. Cada Account pertenece a un User (propietario).
Create Account
Crea un nuevo Account o devuelve uno existente si la referencia ya es conocida.
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 | Obligatorio | Descripción |
|---|---|---|---|
ownerReference | string | Sí | Referencia del User que se convierte en propietario de este Account. El User ya debe existir. |
accountReference | string | Sí | Referencia única para este Account en el formato uniqueId@platformName. |
branch | string | Sí | Sector de la empresa. Valores permitidos: real-estate - Inmobiliario; facilities - Facility management; handyman - Oficios/artesanía; sports-and-leisure - Deporte y ocio; misc - Otro |
invoiceAddress | object | No | Dirección de facturación. Si se indica, todos los subcampos son obligatorios: city, countryCode, street, number, zip |
invoiceContactName | string | No | Nombre del destinatario de la factura |
invoiceCompanyName | string | No | Nombre de la empresa |
invoiceTaxId | string | No | Número de IVA |
email | string | No | Dirección de correo electrónico para facturas |
Algoritmo / Comportamiento
- accountReference desconocida: Se crea un nuevo Account (201 Created).
- accountReference ya conocida: Se devuelve el Account existente (200 OK). Los campos del Account existente no se sobrescriben.
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"
}
}
Errores
| Estado | Causa | Mensaje |
|---|---|---|
400 | Falta un campo obligatorio o está vacío | - |
404 | No se encontró el User propietario | "no user found for ownerReference" |
404 | Sector no válido | "Unable to find specified branch. Was {givenBranch}..." |
404 | Formato de referencia no válido | "Unable to parse account reference. Was {givenReference}..." |
Get Account
Recupera un Account a partir de su referencia.
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"
}
}
Errores
| Estado | Causa |
|---|---|
404 | No se encontró ningún Account con esta referencia |
Providers
Un Provider representa un perfil de calendario que contiene recursos y servicios (Products). Los Providers tienen miembros del Staff (Users) con acceso al Provider.
Create Provider
Crea un nuevo 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 | Obligatorio | Descripción |
|---|---|---|---|
reference | string | Sí | Referencia única del Provider |
ownerReference | string | Sí | Referencia del User que se convierte en propietario |
accountReference | string | Sí | Referencia del Account asociado |
name | string | Sí | Nombre para mostrar del Provider |
email | string | No | Correo electrónico de contacto |
mobile | string | No | Número de móvil |
phone | string | No | Número de teléfono |
impressum | string | No | Texto del aviso legal |
branch | string | No | Sector (ver Account) |
subbranch | string | No | Subsector (p. ej. "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 a partir de su referencia.
curl -X GET "https://www.timum.de/crms/{crmId}/provider/prov-001@yourCrm" \
-H "X-TIMUM-CLIENT-ID: your-api-key"
Response
Devuelve los datos del Provider (como en Create Provider).
Errores
| Estado | Causa |
|---|---|
404 | No se encontró ningún Provider con esta referencia |
Staff
El Staff está formado por Users asignados a un Provider que tienen acceso a su calendario.
List Staff
Enumera todos los miembros del Staff de un Provider.
curl -X GET "https://www.timum.de/crms/{crmId}/provider/prov-001@yourCrm/staff" \
-H "X-TIMUM-CLIENT-ID: your-api-key"
Parámetros de ruta
| Parámetro | Tipo | Descripción |
|---|---|---|
crmId | string | Su identificador de CRM |
providerRef | string | Referencia 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"
}
]
Respuesta en formato array:
api-info.Próximos pasos
Después de configurar su estructura organizativa, puede:
- Configurar Offerings - crear recursos, productos y perfiles de contacto
- Configurar Scheduling - crear disponibilidades y citas
