# Be CRM > Documentación pública de la API multi-tenant de Be CRM. API v1: 1.0.0. Integra contactos, correo, WhatsApp, SMS, conversaciones y webhooks desde tu servidor. ## Cómo leer esta documentación 1. Elige una guía o el índice de endpoints. Sigue sus enlaces para leer solo las operaciones necesarias. 2. Las URLs Markdown no requieren JavaScript, sesión ni pulsar botones. También puedes pedir /docs o /docs/api con Accept: text/markdown y seguir la redirección 307 al archivo .md (por ejemplo, curl -L). 3. Los bloques schema de OpenAPI son esquemas, no ejemplos de solicitudes. Respeta required, oneOf/anyOf, x-scope, métodos y rutas documentados. 4. Los datos de ejemplo son ficticios. Nunca compartas claves reales con un modelo. ## Guías e índices - [Índice de endpoints v1](https://crm.begraffic.com/docs/api/index.md): enlaces por recurso a contratos individuales con permisos, parámetros, cuerpos y respuestas. - [WhatsApp y SMS](https://crm.begraffic.com/docs/messaging.md): canales activos, ventana de 24 horas, tiempo restante, plantillas, botones, enlaces, envío y recepción. - [Referencia clásica](https://crm.begraffic.com/docs.md): leads y correos con claves bmkt_, más las guías públicas. - [OpenAPI JSON](https://crm.begraffic.com/api/v1/openapi.json): esquemas vigentes completos de la API v1. ## Referencias completas (para indexación o contextos amplios) - [API v1 completa](https://crm.begraffic.com/docs/api.md): autenticación bcrm_, guía de mensajería y contrato OpenAPI completo en JSON compacto, sin pérdida de campos. - [Toda la documentación](https://crm.begraffic.com/llms-full.txt): referencias clásica y v1, sin repetir la guía de mensajería. ## Reglas del contrato Las claves bcrm_ y bmkt_ pertenecen a contratos distintos. La clave decide el workspace: no enviar tableId para elegir otro tenant. Revisa x-scope de cada operación. Para enviar mensajes se requiere una integración activa; consultar canales y capacidades antes del envío. Fuera de la ventana WhatsApp se necesita plantilla aprobada; enviar una plantilla no abre la ventana. Usar Idempotency-Key por operación lógica y conservarla en reintentos; no reenviar automáticamente un unknown_outcome. SMS requiere saldo y el circuito bidireccional para recibir. Los estados de recepción desconocidos no prueban que la integración funcione.