Ir al contenido

Proveedores

Ruta: /owner/vendors Gestiona tu catálogo de proveedores y suministradores con matching automático desde gastos y transacciones bancarias.


La pantalla principal de Proveedores muestra tarjetas de resumen y una tabla de todos los proveedores registrados:

Tarjetas de resumen:

TarjetaDescripcion
Total ProveedoresCantidad total de proveedores registrados
Proveedores ActivosProveedores con estado activo
Con CategoríaProveedores con categoría por defecto asignada

Columnas de la tabla: Proveedor (nombre + CIF/NIF), Email, Teléfono, Categoría, Estado, Acciones

Filtros disponibles: búsqueda por nombre/CIF/NIF/email, estado (activos/inactivos), categoría


FuncionDescripcionDocumentacion
Crear ProveedorFormulario completo con pestañas (General, Contacto, Dirección, Configuración)Ver
Editar ProveedorModifica datos de un proveedor existenteVer
Quick Add ProveedorModal rápido para crear proveedor desde formulario de gastosVer
Búsqueda y FiltrosFiltra por nombre, CIF, email, estado y categoríaVer
Matching AutomáticoDetección automática de proveedores desde OCR y transacciones bancariasVer

Los proveedores tienen dos estados posibles:

EstadoDescripcionColor
ActivoProveedor disponible para usar en gastosVerde
InactivoProveedor deshabilitado (no aparece en selecciones)Gris

Factux incluye un sistema inteligente de matching que detecta automáticamente proveedores:

Cuando subes un ticket o factura, el sistema busca coincidencias por:

  1. CIF/NIF exacto (100% confianza) — si el proveedor tiene el mismo CIF
  2. Alias registrado (85-95% confianza) — nombres alternativos guardados
  3. Similitud de nombre (50-95% confianza) — búsqueda fuzzy por nombre

Al sincronizar movimientos bancarios, el sistema detecta proveedores por:

  1. Alias bancario (90-100% confianza) — nombres de comercio guardados
  2. Búsqueda por nombre (60-70% confianza) — búsqueda parcial

Cuando confirmas un proveedor para un gasto, el sistema:

  • Guarda el nombre detectado como alias automático
  • Incrementa el contador de coincidencias
  • Mejora futuras detecciones con ese nombre

Ejemplo: Si el OCR detecta “MERCADONA S.A.” y tú lo vinculas con el proveedor “Mercadona”, la próxima vez que aparezca “MERCADONA S.A.” se sugerirá automáticamente.


Detalles técnicos
TablaColumnas principalesFK
vendorsid, business_id, name, legal_name, tax_id, email, phone, is_active, default_category, default_tax_rate, payment_termsbusinesses
vendor_aliasesid, vendor_id, business_id, alias, match_type, source, times_matchedvendors
PoliticaRegla
vendors_business_isolationbusiness_id = usuario autenticado
vendor_aliases_via_vendorAcceso via proveedor padre
FuncionDescripcion
find_vendor_by_aliasRPC function: busca proveedores por alias con scoring de confianza
increment_alias_matchRPC function: incrementa contador de coincidencias de alias
Match TypeDescripcionUso
exactCoincidencia exactaNombres idénticos
containsContiene el textoNombres parciales
starts_withEmpieza conPrefijos
regexExpresión regularPatrones complejos
SourceOrigenAuto-creado
manualUsuario lo añade manualmenteNo
bankTransacción bancaria
ocrTicket/factura escaneada
learnedAprendizaje automático

Proveedor completo con aliases:

SELECT v.*,
(SELECT json_agg(va.* ORDER BY va.times_matched DESC)
FROM vendor_aliases va
WHERE va.vendor_id = v.id) as aliases
FROM vendors v
WHERE v.id = '<vendor_id>';

Aliases más usados:

SELECT va.alias, va.times_matched, va.source, v.name as vendor_name
FROM vendor_aliases va
JOIN vendors v ON va.vendor_id = v.id
WHERE va.business_id = '<business_id>'
ORDER BY va.times_matched DESC
LIMIT 20;

Proveedores sin categoría:

SELECT id, name, tax_id
FROM vendors
WHERE business_id = '<business_id>'
AND is_active = true
AND default_category IS NULL
ORDER BY name;

Gastos por proveedor:

SELECT v.name, COUNT(e.id) as gastos, SUM(e.amount) as total
FROM vendors v
LEFT JOIN expenses e ON e.vendor_id = v.id
WHERE v.business_id = '<business_id>'
GROUP BY v.id, v.name
ORDER BY total DESC;