Wizzi para desarrolladores

Conectá agentes, automatizaciones y sistemas externos

Usá la API REST, el servidor MCP y webhooks firmados para operar Wizzi con los permisos de cada usuario. El canal, el modelo de IA y la infraestructura los aporta el integrador.

Soy cliente: crear una credencial

Credenciales por usuario

Cada clave conserva roles y permisos efectivos.

REST + MCP

Elegí llamadas HTTP o tools explícitas para agentes.

Eventos firmados

Recibí cambios con HMAC, reintentos y aislamiento.

Inicio rápido

Una integración necesita una credencial, la URL base de esta instalación y solamente los permisos indispensables para su trabajo.

  1. Abrí Agentes e integraciones.
  2. Creá una credencial con un nombre descriptivo y alcance mínimo.
  3. Guardá la clave en el secret store del integrador. Se muestra una sola vez.
  4. Comprobá la identidad con GET /api/agent/v1/me.
curl --fail-with-body \
  -H "Authorization: Bearer <TOKEN>" \
  "https://inmos.wizzi.com.ar/api/agent/v1/me"

Cómo ofrecer una integración para clientes de Wizzi

Podés desarrollar y comercializar agentes, automatizaciones o conectores compatibles con Wizzi sin acceder a una cuenta real durante el desarrollo. El cliente en común aporta la autorización cuando decide contratar el servicio.

1

Construí

Usá esta documentación para preparar tu infraestructura.

2

Cliente activo

La inmobiliaria debe contar con una cuenta de Wizzi.

3

Autorización

El cliente crea una credencial con los permisos mínimos.

4

Conectá

Guardá la clave de forma segura y activá tu servicio.

La credencial siempre la genera el cliente

El integrador nunca debe pedir la contraseña personal de Wizzi. Cada proveedor debe recibir una credencial independiente, revocable y limitada a las capacidades que necesita.

WhatsApp, Telegram, n8n, Make, el proveedor de IA, el alojamiento y los costos de esa infraestructura pertenecen al servicio del integrador. Wizzi aporta la API autorizada, el servidor MCP y los eventos.

Autenticación y permisos

Enviá la credencial como Bearer token. No envíes agencyId, userId, roles ni permisos: el servidor los resuelve y valida en cada solicitud.

Authorization: Bearer gi_live_<prefijo>.<secreto>

Regla de alcance

Una integración nunca puede superar los permisos actuales del usuario que creó la clave. Si el usuario pierde un permiso o se desactiva, la credencial también pierde ese acceso.

API REST

La API v1 devuelve siempre el envelope { data, error, requestId }. La especificación OpenAPI es la fuente de verdad para rutas, métodos y cuerpos.

Abrir OpenAPI /api/agent/v1

Toda escritura debe llevar una clave de idempotencia estable. Si el integrador reintenta la misma operación, reutiliza la misma clave.

Idempotency-Key: 00000000-0000-0000-0000-000000000000
curl --fail-with-body \
  -H "Authorization: Bearer <TOKEN>" \
  "https://inmos.wizzi.com.ar/api/agent/v1/properties?search=Mitre&pageSize=10"

MCP para agentes

El servidor MCP expone tools pequeñas y explícitas. Funciona con clientes compatibles como Claude, Cursor, n8n u otra infraestructura que implemente MCP remoto.

{
  "url": "https://inmos.wizzi.com.ar/api/agent/mcp",
  "headers": {
    "Authorization": "Bearer <TOKEN>"
  }
}

El agente debe buscar primero, resolver un ID inequívoco y recién después escribir. Nunca coloques la credencial en el prompt, la memoria del agente ni los mensajes del usuario.

Acciones sensibles

Registrar o deshacer pagos, pagar liquidaciones y cambiar estados sensibles de contratos requieren aprobación humana desde la sesión web.

1

Solicitar

La API responde confirmation_required.

2

Aprobar

El usuario revisa y aprueba en la web.

3

Ejecutar

Se reenvía X-Confirmation-Id una sola vez.

X-Confirmation-Id: <CONFIRMATION_ID>

La confirmación queda ligada a la acción, el recurso y todos sus parámetros. Cambiar el monto, el ID o cualquier otro parámetro la invalida.

Webhooks firmados

Los webhooks notifican cambios; la API sigue siendo la fuente de verdad. Solo se aceptan destinos HTTPS públicos y las entregas se firman con HMAC-SHA256.

X-Wizzi-Event: contract.activated
X-Wizzi-Delivery-Id: <DELIVERY_ID>
X-Wizzi-Signature: sha256=<HEX_HMAC>
Content-Type: application/json

Verificá la firma sobre los bytes crudos exactos antes de parsear el body. Deduplicá entregas repetidas usando X-Wizzi-Delivery-Id o el ID del evento y respondé rápidamente con 2xx.

Catálogo de eventos

property.createdproperty.updatedproperty.archivedclient.createdclient.updatedclient.interaction.createdvisit.scheduledvisit.completedvisit.cancelledpayment.registeredcontract.createdcontract.updatedcontract.activatedcontract.finishedcontract.rescindedsettlement.paid

Las suscripciones guardan una selección concreta. Cuando se agregan tipos nuevos, actualizá o recreá el webhook para incorporarlos.

Errores y reintentos

HTTPSignificadoAcción
401Credencial ausente, inválida o vencidaDetener y revisar la credencial
403Falta una capacidadSolicitar el permiso mínimo necesario
409Confirmación o idempotenciaSeguir el detalle; no cambiar parámetros
429Límite temporalReintentar con backoff
5xxFallo transitorioReintentar conservando Idempotency-Key

Checklist de seguridad

  • Crear una credencial distinta por sistema y aplicar mínimo privilegio.
  • Guardar tokens y secretos únicamente en un secret store.
  • No incluir credenciales en prompts, logs, capturas ni repositorios.
  • Usar HTTPS, timeouts, backoff e idempotencia en todas las escrituras.
  • Validar la firma del webhook antes de procesar el body.
  • Revocar inmediatamente una integración ante cualquier sospecha.

La plataforma no incluye el canal ni el modelo

WhatsApp, Telegram, el proveedor de IA y la infraestructura del bot son responsabilidad del integrador. Wizzi aporta operaciones autorizadas y eventos.