API Externa
La API REST de FusionCRM permite integrar el CRM con cualquier sistema externo: crear contactos desde formularios web, sincronizar deals con ERPs, enviar mensajes desde aplicaciones propias y más.
Introducción a la API
La API de FusionCRM sigue las convenciones REST estándar:
GETLeer datos
POSTCrear registros
PUT/PATCHActualizar
DELETEEliminar
Todas las respuestas son en formato JSON con codificación UTF-8. Los timestamps están en ISO 8601 (UTC).
Autenticación
Todas las peticiones deben incluir tu API Key en el header de autorización:
Ejemplo con curl:
curl -X GET https://api.fusioncol.com/v1/contacts \ -H "Authorization: Bearer sk_live_xxxxxxxxxx" \ -H "Content-Type: application/json"
URL base y versiones
URL base:
https://api.fusioncol.com/v1La versión actual de la API es v1. Cuando se lancen versiones nuevas, la versión anterior se mantiene activa por al menos 12 meses con avisos de deprecación.
Contactos API
/v1/contactsLista todos los contactos con paginación.
Params: page, limit, search, email
/v1/contacts/:idObtiene un contacto por ID.
Params: id (requerido)
/v1/contactsCrea un nuevo contacto.
Params: Body: nombre, email, telefono, empresa, campos adicionales
/v1/contacts/:idActualiza todos los campos de un contacto.
Params: id + body completo
/v1/contacts/:idActualiza campos específicos.
Params: id + campos a actualizar
/v1/contacts/:idElimina un contacto.
Params: id (requerido)
Ejemplo: Crear contacto
POST /v1/contacts
{
"nombre": "Juan García",
"email": "juan@empresa.com",
"telefono": "3001234567",
"empresa": "Empresa S.A.",
"cargo": "Gerente Comercial",
"ciudad": "Bogotá"
}Deals API
/v1/dealsLista deals con filtros opcionales.
/v1/deals/:idObtiene detalle de un deal.
/v1/dealsCrea un nuevo deal.
/v1/deals/:idActualiza un deal.
/v1/deals/:idElimina un deal.
Conversaciones API
/v1/conversationsLista conversaciones activas.
/v1/conversations/:id/messagesObtiene mensajes de una conversación.
/v1/conversations/:id/messagesEnvía un mensaje (WhatsApp/email).
/v1/conversations/send-templateEnvía un template de WhatsApp a un contacto.
Ejemplo: Enviar template WhatsApp
POST /v1/conversations/send-template
{
"contacto_id": "abc123",
"template_name": "recordatorio_cita",
"language": "es",
"parameters": ["Juan", "15 de enero", "2:00 PM"]
}Webhooks
Los webhooks permiten que FusionCRM notifique a tu aplicación cuando ocurren eventos. En lugar de hacer polling, tu servidor recibe notificaciones en tiempo real.
Configurar un webhook
- 1. Ve a Configuración → API → Webhooks
- 2. Agrega la URL de tu endpoint
- 3. Selecciona los eventos a escuchar
- 4. FusionCRM enviará un POST a tu URL cuando ocurra el evento
| contact.created | Nuevo contacto creado |
| contact.updated | Contacto actualizado |
| deal.created | Nuevo deal creado |
| deal.stage_changed | Deal cambió de etapa |
| deal.closed_won | Deal cerrado ganado |
| deal.closed_lost | Deal cerrado perdido |
| conversation.message_received | Nuevo mensaje entrante |
| invoice.issued | Factura emitida |
X-FusionCRM-Signature para validar que la petición proviene genuinamente de FusionCRM.Manejo de errores
| Código HTTP | Significado |
|---|---|
| 200 OK | Solicitud exitosa |
| 201 Created | Recurso creado exitosamente |
| 400 Bad Request | Datos inválidos o faltantes |
| 401 Unauthorized | API Key inválida o faltante |
| 403 Forbidden | Sin permisos para esa acción |
| 404 Not Found | Recurso no encontrado |
| 422 Unprocessable Entity | Error de validación |
| 429 Too Many Requests | Rate limit excedido |
| 500 Internal Server Error | Error del servidor |
Rate limits
Para garantizar la disponibilidad del servicio, la API tiene los siguientes límites:
Básico
100 req/min
Pro
500 req/min
Enterprise
Personalizado
El header de respuesta X-RateLimit-Remaining indica cuántas peticiones quedan en la ventana actual.