Herramientas

Gratis y sin cuenta, para quien integra facturación electrónica con SUNAT. No guardamos nada de lo que escribes ni de lo que subes.

Validar un RUC

Comprueba la forma y el dígito verificador (módulo 11), lo mismo que conviene validar en tu sistema antes de emitir.

El algoritmo, para copiarlo
// Pesos de los diez primeros dígitos
$pesos = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];
$suma = 0;
foreach ($pesos as $i => $p) { $suma += (int) $ruc[$i] * $p; }
$resto = 11 - ($suma % 11);
$digito = $resto === 10 ? 0 : ($resto === 11 ? 1 : $resto);
$valido = preg_match('/^\d{11}$/', $ruc) === 1 && $digito === (int) $ruc[10];

Certificado de prueba (.pfx)

Un certificado autofirmado para firmar XML mientras desarrollas. La beta de SUNAT acepta cualquier certificado; producción no: ahí hace falta el de una entidad acreditada, comunicado en SOL.

Contraseña del .pfx: comprobia. Vale un año. No sirve para producción.

Validar un XML contra el esquema de SUNAT

Contra los XSD oficiales de UBL 2.1 que publica SUNAT: factura, boleta, notas, guía, liquidación de compra, resumen diario, comunicación de baja, retención y percepción. Valida la estructura —elementos, orden, tipos—, no las reglas de negocio.

Valídalo firmado: sin firma, el hueco de ext:ExtensionContent está vacío y el esquema lo rechaza con razón.

Emitir desde una carpeta (para sistemas sin API)

Si tu sistema de ventas no habla con una API pero sí exporta un archivo, el conector de carpeta (un script de PowerShell para Windows, sin instalar nada) toma las planillas que tu sistema deja en una carpeta —CSV, TXT separado por ;, ,, | o tabuladores, o XLSX, con las columnas de la plantilla— y las emite con Comprobia. Deja el número y el enlace de cada comprobante en resultados\.

  1. Guárdalo en una carpeta, por ejemplo C:\Comprobia, y configúralo una vez: powershell -ExecutionPolicy Bypass -File comprobia-carpeta.ps1 -Configurar (pide el RUC y la clave de API; la clave queda cifrada para tu usuario de Windows).
  2. Prográmalo cada minuto: schtasks /Create /TN "Comprobia carpeta" /SC MINUTE /MO 1 /TR "powershell -NoProfile -ExecutionPolicy Bypass -File C:\Comprobia\comprobia-carpeta.ps1"
  3. Que tu sistema deje los archivos en C:\Comprobia\entrada. La columna comprobante tiene que ser única por venta: es lo que impide emitir dos veces si un archivo se reenvía.

¿Y para emitir?

Crea un sandbox en dos minutos: emites por la API con un RUC de prueba y un simulador de SUNAT, sin firmar nada tú.