Exclusivo plan Premium

Documentación API REST

Integra cualquier aplicación con tu CRM. Consulta, crea, actualiza y elimina registros de forma segura mediante nuestra API REST.

Endpoint: 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 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.

GET

getchallenge

Solicita un token temporal para el usuario indicado. Este token expira en pocos minutos.

ParámetroValorDescripción
operationgetchallengeOperación fija
usernamestringNombre de usuario del CRM

Respuesta

{
  "success": true,
  "result": {
    "token": "TOKEN_VALIDO",
    "serverTime": 1720000000,
    "expireTime": 1720000600
  }
}
POST

login

Combina el token con tu Access Key mediante MD5 y envía la petición de login en formato form-data.

Fórmula accessKey = MD5( token + Access_Key_del_usuario )
ParámetroValorDescripción
operationloginOperación fija
usernamestringNombre de usuario
accessKeystringMD5(token + Access Key)

Respuesta

{
  "success": true,
  "result": {
    "sessionId": "SESSION_ID",
    "userId": "19x1",
    "version": "0.1"
  }
}
Guarda el sessionId — es obligatorio en todas las llamadas posteriores junto con el parámetro 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.

GET

DESCRIBE

Devuelve los metadatos del módulo: campos, tipos, campos obligatorios, operaciones soportadas e identificador del módulo.

ParámetroDescripción
operationSiempre describe
sessionNamesessionId obtenido en el login
elementTypeNombre del módulo: Contacts, Accounts, Leads
POST

CREATE

Crea un nuevo registro. La petición debe ser POST con parámetros en formato form-data.

ParámetroDescripción
operationSiempre create
sessionNamesessionId del login
elementTypeNombre del módulo
elementJSON con los datos del registro (incluye al menos los campos obligatorios)
Usa DESCRIBE para conocer qué campos son obligatorios. Si la creación es correcta, la respuesta incluye el id del nuevo registro.
GET

RETRIEVE

Obtiene todos los datos de un registro a partir de su ID.

ParámetroDescripción
operationSiempre retrieve
sessionNamesessionId del login
idID del registro en formato 14x35452
POST

UPDATE

Actualiza un registro existente. Todos los campos deben incluirse en element: cualquier campo omitido quedará en blanco.

ParámetroDescripción
operationSiempre update
sessionNamesessionId del login
elementJSON con todos los campos del registro, incluyendo id y assigned_user_id
UPDATE sobreescribe el registro completo. Si solo necesitas modificar algunos campos, usa REVISE.
POST

REVISE

Actualización parcial. Solo se actualizan los campos incluidos en element; el resto permanece sin cambios. Más eficiente que UPDATE.

ParámetroDescripción
operationSiempre revise
sessionNamesessionId del login
elementJSON con el id del registro y solo los campos a modificar
POST

DELETE

Mueve un registro a la Papelera de Reciclaje. Puede restaurarse desde el CRM.

ParámetroDescripción
operationSiempre delete
sessionNamesessionId del login
idID del registro en formato 14x35452
GET

QUERY

Ejecuta una consulta SQL sobre los datos del CRM para listar y filtrar registros.

ParámetroDescripción
operationSiempre query
sessionNamesessionId del login
queryConsulta 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 LIMIT con offset para paginar.
  • Solo se admiten consultas sobre un único módulo. Los JOINs no están soportados.
  • Operadores: = != < > <= >= IN LIKE

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