Documentación API REST
Integra cualquier aplicación con tu CRM. Consulta, crea, actualiza y elimina registros de forma segura mediante nuestra API REST.
https://tu_crm.opencrm.es/webservice.php
Introducción
La API REST de OpenCRM permite integrar cualquier aplicación de terceros con tu CRM. Puedes consultar, crear, actualizar y eliminar registros de prácticamente cualquier módulo del sistema de forma segura mediante peticiones HTTP estándar.
Plan Premium requerido
El acceso a la API REST es una funcionalidad exclusiva del plan OpenCRM Premium. Contacta con nosotros si necesitas activarla en tu cuenta.
Todas las solicitudes deben incluir como mínimo el parámetro operation, que indica qué acción se desea ejecutar.
Endpoint base
Todas las llamadas a la API se realizan contra la misma URL. Sustituye tu_crm por el subdominio de tu instalación:
https://tu_crm.opencrm.es/webservice.php El parámetro operation debe estar presente en todas las llamadas a la API.
Autenticación
La API requiere autenticación en 2 pasos: primero obtienes un token temporal y luego lo combinas con tu Access Key para iniciar sesión y recibir un sessionId.
Access Key ≠ Contraseña
El Access Key es distinto a tu contraseña habitual. Lo encontrarás en Mis Preferencias, en la parte inferior de la pantalla. Las operaciones disponibles se limitan a los permisos del usuario con el que inicies sesión.
getchallenge
Solicita un token temporal para el usuario indicado. Este token expira en pocos minutos.
| Parámetro | Valor | Descripción |
|---|---|---|
operation | getchallenge | Operación fija |
username | string | Nombre de usuario del CRM |
Respuesta
{
"success": true,
"result": {
"token": "TOKEN_VALIDO",
"serverTime": 1720000000,
"expireTime": 1720000600
}
} login
Combina el token con tu Access Key mediante MD5 y envía la petición de login en formato form-data.
accessKey = MD5( token + Access_Key_del_usuario ) | Parámetro | Valor | Descripción |
|---|---|---|
operation | login | Operación fija |
username | string | Nombre de usuario |
accessKey | string | MD5(token + Access Key) |
Respuesta
{
"success": true,
"result": {
"sessionId": "SESSION_ID",
"userId": "19x1",
"version": "0.1"
}
} operation.Operaciones disponibles
Las siguientes operaciones permiten gestionar registros de cualquier módulo del CRM: Contactos, Cuentas, Leads, Oportunidades, Presupuestos, Pedidos, Facturas y más.
Formato de ID de registro
Cada registro se identifica con el formato 14x35452: el número antes de la x es el ID del módulo y el de después es el ID interno del registro. Usa DESCRIBE para conocer el ID de cada módulo.
DESCRIBE
Devuelve los metadatos del módulo: campos, tipos, campos obligatorios, operaciones soportadas e identificador del módulo.
| Parámetro | Descripción |
|---|---|
operation | Siempre describe |
sessionName | sessionId obtenido en el login |
elementType | Nombre del módulo: Contacts, Accounts, Leads… |
CREATE
Crea un nuevo registro. La petición debe ser POST con parámetros en formato form-data.
| Parámetro | Descripción |
|---|---|
operation | Siempre create |
sessionName | sessionId del login |
elementType | Nombre del módulo |
element | JSON con los datos del registro (incluye al menos los campos obligatorios) |
id del nuevo registro.RETRIEVE
Obtiene todos los datos de un registro a partir de su ID.
| Parámetro | Descripción |
|---|---|
operation | Siempre retrieve |
sessionName | sessionId del login |
id | ID del registro en formato 14x35452 |
UPDATE
Actualiza un registro existente. Todos los campos deben incluirse en element: cualquier campo omitido quedará en blanco.
| Parámetro | Descripción |
|---|---|
operation | Siempre update |
sessionName | sessionId del login |
element | JSON con todos los campos del registro, incluyendo id y assigned_user_id |
REVISE
Actualización parcial. Solo se actualizan los campos incluidos en element; el resto permanece sin cambios. Más eficiente que UPDATE.
| Parámetro | Descripción |
|---|---|
operation | Siempre revise |
sessionName | sessionId del login |
element | JSON con el id del registro y solo los campos a modificar |
DELETE
Mueve un registro a la Papelera de Reciclaje. Puede restaurarse desde el CRM.
| Parámetro | Descripción |
|---|---|
operation | Siempre delete |
sessionName | sessionId del login |
id | ID del registro en formato 14x35452 |
QUERY
Ejecuta una consulta SQL sobre los datos del CRM para listar y filtrar registros.
| Parámetro | Descripción |
|---|---|
operation | Siempre query |
sessionName | sessionId del login |
query | Consulta SQL (URL-encoded) |
Sintaxis SQL soportada
SELECT * | <columnas> | count(*)
FROM <módulo>
[WHERE <condiciones>]
[ORDER BY <columnas>]
[LIMIT [offset,] n] Limitaciones importantes
- Máximo 100 registros por consulta. Usa
LIMITcon offset para paginar. - Solo se admiten consultas sobre un único módulo. Los JOINs no están soportados.
- Operadores:
=!=<><=>=INLIKE
Operaciones Personalizadas
Las operaciones estándar cubren la mayoría de casos de integración. Si tu caso de uso requiere una función personalizada, podemos desarrollarla para ti.
¿Necesitas algo más específico?
Nuestro equipo puede desarrollar operaciones personalizadas adaptadas a tus necesidades concretas de integración.
Contactar con soporte