API

Documentación para desarrolladores

Plan Básico o superior

Servidor MCP

Conectá Claude, ChatGPT o cualquier agente de IA compatible con MCP a tu cuenta de YoFacturo y operá tu negocio de forma conversacional: consultá ventas, creá clientes, emití presupuestos, registrá gastos y mucho más.


¿Qué es MCP?

Model Context Protocol (MCP) es un estándar abierto que conecta modelos de IA con herramientas externas. El servidor MCP de YoFacturo expone las mismas operaciones que el asistente de IA integrado en el panel, accesibles desde cualquier cliente MCP: Claude Desktop, Claude Code, claude.ai, Cursor, VS Code, ChatGPT (vía conectores) o tu propio agente.

No lo confundas con los API tokens (yf_live_…), que son una funcionalidad exclusiva del plan Premium para integraciones REST personalizadas — ver Autenticación. El servidor MCP es más accesible: está disponible desde el plan Básico (las cuentas en período de prueba también tienen acceso).

Cómo conectar tu cliente MCP

URL del servidor:

https://api.yo-facturo.com/api/v1/mcp
  • Transporte: Streamable HTTP (JSON-RPC 2.0).
  • Autenticación: OAuth 2.1 con PKCE (S256) y Registro Dinámico de Clientes (Dynamic Client Registration, RFC 7591) — tu cliente MCP se registra solo, no hace falta crear nada a mano.
  • Versión del protocolo: 2025-06-18 (también negocia 2025-03-26 y 2024-11-05 para clientes más viejos).

Agregá esa URL como servidor MCP remoto en tu cliente. La primera vez que te conectás:

  1. El cliente abre tu navegador en YoFacturo.
  2. Iniciás sesión con tu cuenta (si todavía no lo hiciste).
  3. Revisás los permisos (scopes) solicitados y autorizás la conexión.
  4. El cliente recibe sus credenciales y queda conectado — no hay tokens para copiar ni pegar.
Claude Code
claude mcp add --transport http yofacturo https://api.yo-facturo.com/api/v1/mcp

Al primer uso, Claude Code abre el navegador para que autorices la conexión.

Claude Desktop / claude.ai

Agregá un conector / servidor MCP remoto apuntando a la URL de arriba. El cliente detecta automáticamente que el servidor requiere OAuth (vía los documentos de discovery en /.well-known/) y dispara el flujo de autorización en el navegador.

Clientes MCP genéricos

Cualquier cliente MCP que soporte transporte HTTP remoto con OAuth 2.1 puede conectarse. El formato exacto de configuración varía según el cliente; un ejemplo típico:

curl -X POST https://api.yo-facturo.com/api/v1/mcp \
  -H "Authorization: Bearer TU_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Permisos (scopes)

Durante la autorización se muestran los permisos que el cliente solicita. Podés conceder solo lectura, o lectura + escritura.

ScopePermite
yofacturo:readConsultar tu información: clientes, productos, ventas, presupuestos, reportes, etc.
yofacturo:writeCrear y modificar datos: clientes, productos, ventas, gastos, presupuestos, etc.

Si conectás en modo solo lectura, el cliente puede consultar datos pero nunca modificarlos: el servidor rechaza cualquier herramienta de escritura con un error explícito.

Herramientas disponibles

El servidor expone 76 herramientas — el mismo conjunto que usa el asistente de IA integrado en el panel. Qué herramientas ve cada conexión depende de dos cosas:

  • Tu plan y los módulos habilitados en tu cuenta: solo aparecen las herramientas de las funciones que tenés activas (por ejemplo, sin el módulo de Alquileres no vas a ver esas herramientas).
  • El scope concedido: las herramientas que crean o modifican datos (columna «Tipo» = Escritura) solo están disponibles si concediste yofacturo:write.

Las herramientas de escritura le piden al asistente que confirme los datos con vos antes de ejecutarse — el servidor nunca crea ni modifica algo sin que lo veas primero.

General y clientes
HerramientaTipoDescripción
search_customers
Lectura
Buscar clientes por nombre, email, teléfono o CUIT/RUT. Devuelve una lista paginada.
get_customer
Lectura
Obtener datos completos de un cliente por su ID.
create_customer
Escritura
Crear un nuevo cliente.
update_customer
Escritura
Actualizar datos de un cliente existente.
list_payment_methods
Lectura
Listar métodos de pago configurados (efectivo, tarjeta, transferencia, etc.).
create_payment_method
Escritura
Crear un nuevo método de pago.
update_payment_method
Escritura
Actualizar un método de pago existente.
get_dashboard_stats
Lectura
Estadísticas del negocio: total de ventas, gastos, balance, top productos vendidos y evolución por período.
navigate_to
Lectura
Sugerir al usuario navegar a una sección de la app para acciones que el servidor no puede hacer directamente (facturación AFIP, punto de venta, imprimir comprobantes, configuración, etc.).
list_notifications
Lectura
Listar notificaciones recientes del usuario. Solo lectura.
list_tickets
Lectura
Listar los tickets de soporte del usuario. Solo lectura.
create_ticket
Escritura
Crear un ticket de soporte.
search_kb
Lectura
Buscar artículos en la base de conocimiento / centro de ayuda.
list_integrations_status
Lectura
Listar el estado de las integraciones configuradas (MercadoPago, MercadoLibre, envíos, etc.). Solo lectura.
Catálogo: productos, servicios y alquileres
HerramientaTipoDescripción
search_products
Lectura
Buscar productos por nombre, SKU o descripción.
get_product
Lectura
Obtener datos completos de un producto, incluyendo variantes, stock y precio.
create_product
Escritura
Crear un nuevo producto, con variantes opcionales (talles, colores, etc.).
update_product
Escritura
Actualizar datos de un producto existente (nombre, precio, stock, etc.).
search_services
Lectura
Buscar servicios ofrecidos por nombre o descripción.
create_service
Escritura
Crear un nuevo servicio ofrecido.
update_service
Escritura
Actualizar datos de un servicio existente.
search_rentals
Lectura
Buscar alquileres disponibles por nombre o descripción.
create_rental
Escritura
Crear un nuevo alquiler (objetos o propiedades).
update_rental
Escritura
Actualizar datos de un alquiler existente.
list_categories
Lectura
Listar categorías de productos/servicios.
create_category
Escritura
Crear una nueva categoría para productos o servicios.
update_category
Escritura
Actualizar una categoría existente.
prepare_stock_changes
Lectura
Preparar cambios de stock y/o precio de productos existentes (no para crear) y dejarlos precargados en el Carrito de Cambios, para revisar y confirmar. Acepta varios productos a la vez.
list_promotions
Lectura
Listar promociones y descuentos.
create_promotion
Escritura
Crear una nueva promoción o descuento.
update_promotion
Escritura
Actualizar una promoción existente.
list_rental_contracts
Lectura
Listar contratos de alquiler.
get_rental_contract
Lectura
Obtener el detalle completo de un contrato de alquiler.
create_rental_contract
Escritura
Crear un nuevo contrato de alquiler.
list_subscription_plans
Lectura
Listar planes de suscripción creados por el negocio.
create_subscription_plan
Escritura
Crear un nuevo plan de suscripción.
update_subscription_plan
Escritura
Actualizar un plan de suscripción existente.
Ventas y presupuestos
HerramientaTipoDescripción
list_sales
Lectura
Listar ventas/facturas con filtros opcionales por fecha, estado o texto.
get_sale
Lectura
Obtener el detalle completo de una venta/factura (ítems, cliente, totales y pagos).
create_sale
Escritura
Crear una nueva venta/factura.
update_sale
Escritura
Actualizar una venta/factura existente (estado, ítems, etc.).
list_budgets
Lectura
Listar presupuestos/cotizaciones.
create_budget
Escritura
Crear un nuevo presupuesto/cotización.
update_budget
Escritura
Actualizar un presupuesto/cotización existente.
convert_budget_to_sale
Escritura
Convertir un presupuesto aprobado en una venta/factura.
get_pos_summary
Lectura
Resumen de operaciones del punto de venta (caja) del día o de un rango de fechas. Solo lectura.
Compras, gastos, cuenta corriente y RRHH
HerramientaTipoDescripción
list_expenses
Lectura
Listar gastos con filtros opcionales por fecha, categoría o estado.
create_expense
Escritura
Registrar un nuevo gasto.
update_expense
Escritura
Actualizar un gasto existente.
list_suppliers
Lectura
Listar proveedores con búsqueda opcional.
create_supplier
Escritura
Crear un nuevo proveedor.
update_supplier
Escritura
Actualizar datos de un proveedor existente.
list_orders
Lectura
Listar órdenes de compra a proveedores.
get_order
Lectura
Obtener el detalle completo de una orden de compra.
create_order
Escritura
Crear una nueva orden de compra a un proveedor.
update_order
Escritura
Actualizar una orden de compra existente (estado, ítems, etc.).
get_account_balance
Lectura
Obtener balance y estado de la cuenta corriente de un cliente o proveedor.
list_accounts
Lectura
Listar cuentas corrientes, con filtro opcional por tipo (cliente/proveedor) y estado.
get_account_statement
Lectura
Obtener el extracto de movimientos de una cuenta corriente (facturas, pagos, débitos, créditos).
register_payment
Escritura
Registrar un pago en la cuenta corriente de un cliente o proveedor.
list_bills
Lectura
Listar facturas de compra recibidas de proveedores.
create_bill
Escritura
Registrar una factura de compra de un proveedor.
get_iva_report
Lectura
Resumen del libro IVA ventas/compras para un período. Solo lectura.
list_team_members
Lectura
Listar empleados/miembros del equipo. Solo lectura.
get_employee
Lectura
Ver el detalle de un empleado (datos personales, puesto, estado). Solo lectura.
get_org_chart
Lectura
Ver el organigrama de la empresa y los conteos de empleados por estado. Solo lectura.
get_attendance_today
Lectura
Resumen de asistencia/fichajes del día. Solo lectura.
get_attendance_alerts
Lectura
Alertas de asistencia del día: empleados tarde, ausentes o en licencia. Solo lectura.
get_employee_attendance
Lectura
Reporte de asistencia de un empleado en un rango de fechas (presentes/ausentes/tarde, horas). Solo lectura.
list_leaves
Lectura
Listar licencias/ausencias/vacaciones de empleados. Solo lectura.
list_payroll_periods
Lectura
Listar períodos de liquidación de sueldos con su estado (borrador, calculado, aprobado, pagado, cerrado). Solo lectura.
get_payroll_period_summary
Lectura
Resumen de un período de liquidación: totales y desglose por empleado. Solo lectura.
list_payroll_receipts
Lectura
Listar recibos de sueldo de un período o de un empleado. Solo lectura.
get_employee_salary
Lectura
Ver el perfil salarial de un empleado (sueldo base, categoría, convenio). Información sensible, solo lectura.
get_audit_log
Lectura
Consultar el log de auditoría: quién hizo qué cambio y cuándo. Solo lectura.
Alertas de cobranza
HerramientaTipoDescripción
get_collection_alerts
Lectura
Listar alertas de cobranza: clientes con pagos vencidos o próximos a vencer. Solo lectura.

Seguridad

  • OAuth 2.1 + PKCE (S256): flujo de autorización estándar, vinculado a tu cuenta. El servidor rechaza el transform plain de PKCE.
  • Tokens de acceso de corta duración (1 hora), renovables con un refresh token rotativo: cada renovación invalida el refresh token anterior.
  • Revocación inmediata: al revocar una conexión desde el panel, el acceso se corta de inmediato — el servidor verifica la revocación en cada llamada, independientemente del token.
  • Toda conexión queda vinculada a tu cuenta y a tu empresa: el servidor MCP nunca da acceso fuera del alcance de tu cuenta.
  • El servidor re-verifica tu plan y tu suscripción en cada resolución de contexto: si tu suscripción vence o bajás de plan, las conexiones existentes dejan de funcionar.
  • Los redirect_uri se validan por coincidencia exacta contra los registrados por el cliente (sin comodines) y solo se aceptan esquemas https, esquemas de app nativa (cursor://, vscode://, etc.) o http en loopback (localhost, 127.0.0.1).

Límites de uso

Cada conexión MCP tiene límites de frecuencia por ventana, para evitar abusos:

VentanaMáximo
Por segundo8
Por minuto120
Por hora3.000
Por día20.000

Superar cualquier ventana devuelve un error 429 temporal con el header Retry-After. Más detalle sobre el manejo de errores en Manejo de errores.

Gestionar tus conexiones

Desde Configuración → Integraciones → Servidor MCP podés ver todas las conexiones vinculadas a tu cuenta (cliente, fecha de conexión, última actividad) y revocar cualquiera de ellas — el acceso se corta de inmediato, sin afectar a las demás. Cada cuenta puede tener hasta 25 conexiones activas.

Ver mis conexiones MCP

Troubleshooting

ErrorCausa y solución
401 unauthorized / invalid_tokenNo mandaste un access token, o venció (dura 1 hora). Volvé a autenticarte o usá el refresh token para renovarlo.
403 connection_revokedRevocaste esta conexión desde Configuración → Integraciones. Conectá el cliente de nuevo para generar una conexión nueva.
403 plan_requiredTu cuenta no tiene un plan que habilite MCP (se requiere plan Básico o superior, o estar en período de prueba).
403 subscription_inactiveTu suscripción venció o está inactiva. Regularizá el pago para que las conexiones vuelvan a funcionar.
429 rate_limitedSuperaste un límite de frecuencia de la conexión. Esperá el tiempo indicado en Retry-After y reintentá.
invalid_redirect_uriEl redirect_uri de tu cliente no está registrado o no coincide exactamente. Volvé a registrar el cliente (Dynamic Client Registration) desde cero.
invalid_request (PKCE)Falta code_challenge o no usa S256 (el transform plain no está soportado). Verificá que tu cliente MCP implemente PKCE correctamente.
La herramienta no apareceO el módulo correspondiente no está habilitado en tu plan/cuenta, o la conexión solo tiene el scope yofacturo:read (las herramientas de escritura no aparecen sin yofacturo:write).

¿Necesitás integrar por REST en vez de MCP? Mirá la Autenticación con API tokens y los Recursos y scopes disponibles.