Libro de Reclamaciones digital: responder en plazo y dejar constancia
Si vendes por internet en Perú, el Libro de Reclamaciones no es opcional: el Indecopi lo dice sin rodeos en su página para proveedores. Lo que casi nadie explica es qué pasa después de que el cliente llena el formulario. Implementé el mismo libro en tres sistemas con cobro (Arca, SortealoPE y wapi) y en el sitio de AppsSDAR. Esto es lo que aprendí sobre la parte que sí te pueden fiscalizar: responder a tiempo y poder probarlo.
Qué dice la norma hoy (y qué dicen muchas guías viejas)
El Reglamento del Libro de Reclamaciones es el D.S. N° 011-2011-PCM. Lo modificó el D.S. N° 006-2014-PCM, que fijó el plazo de respuesta en 30 días, prorrogables por otros 30. Ese es el número que sigue circulando en blogs y plantillas. Ya no rige.
La Ley N° 31435 cambió los artículos 24 y 152 del Código de Protección y Defensa del Consumidor, y el D.S. N° 101-2022-PCM (publicado el 16 de agosto de 2022) adaptó el reglamento. Según la nota oficial del Indecopi, reclamos y quejas se responden en un máximo de 15 días hábiles, y ese plazo rige desde el 21 de mayo de 2022. En su página del Libro de Reclamaciones lo describe como no prorrogable. Si tu texto legal dice "30 días", está desactualizado.
Lo que esa misma página del Indecopi exige a un libro virtual:
- Estar en el mismo medio donde vendes, con un aviso visible de que existe.
- Permitir imprimir la hoja o enviar una copia al correo del consumidor.
- Responder por escrito, por carta o por el correo que indicó el consumidor, informando las acciones tomadas. Si no aceptas lo que pide, debes fundamentar tu posición.
- Tener un libro físico de respaldo para cuando el virtual no se pueda usar. El Indecopi aclara que el físico no es obligatorio además del virtual, pero el respaldo sí.
- No necesita legalización notarial ni registro en el Indecopi.
Sobre la multa: el Indecopi dice que incumplir el plazo es una infracción administrativa y que el proveedor puede ser denunciado. No te doy un monto porque la escala depende de la gravedad y de tus ingresos, y las cifras que circulan en blogs no las pude contrastar con la norma.
Recibir no es lo que te piden probar
Cuando el Indecopi interviene, el consumidor le lleva su copia de la hoja y dice "no me respondieron". Lo que te toca demostrar es la fecha en que respondiste. El Indecopi lo dice así para los libros virtuales: hay que conservar el correo enviado y la constancia de entrega o lectura.
Un formulario que solo manda un correo al buzón del negocio guarda el reclamo en una bandeja de entrada. Allí se mezcla con spam, se archiva o se borra, y de la respuesta no queda nada ordenado. Por eso, en los tres sistemas con cobro cada hoja es una fila en la base de datos, con número correlativo, y la respuesta se registra en esa misma fila.
Responder desde el panel sella la fila
Esta es la decisión central. La respuesta no se escribe en Gmail: se escribe en el panel de administración. El servidor envía el correo y, solo si salió, actualiza la hoja. Este es el flujo de wapi, resumido:
const envio = await sendEmail({ to: hoja.consumidor_correo, ... });
if (!envio.sent) {
return fail(res, { status: 502, code: 'CORREO_FALLIDO',
message: 'No se pudo enviar el correo: la hoja sigue pendiente' });
}
await query(
"UPDATE reclamos SET estado = 'respondido', respuesta = $2, respondido_en = NOW() WHERE id = $1",
[id, texto]); Si el correo falla, la hoja sigue pendiente y el panel devuelve un error 502. Marcarla como respondida igual sería fabricar una constancia de algo que el consumidor nunca recibió, que es lo peor que puede encontrar un fiscalizador. El endpoint también rechaza con un 409 responder dos veces la misma hoja y deja un evento de auditoría con los días que quedaban al responder.
El orden importa también al ingresar el reclamo: primero se inserta la hoja y después se manda el aviso al negocio y el acuse al consumidor. Si el servidor de correo está caído, el reclamo no se pierde.
Dos detalles de la hoja que recibe el consumidor: lleva un código visible
con prefijo por sistema (WAP-2026-000001, y análogos para
Arca y SortealoPE) y el correlativo es global, no reinicia cada año. La
norma pide orden correlativo, no que empiece de cero, y reiniciarlo
repetiría códigos que ya entregaste a clientes.
Contar 15 días hábiles sin equivocarte por un día
El plazo parece trivial y falla en tres sitios. El módulo de plazos de SortealoPE (el mismo que portamos a wapi y Arca) lo resuelve así:
- El día del ingreso no cuenta. Se parte del día siguiente y se avanza hasta contar 15 hábiles.
- Hábil es lunes a viernes que no sea feriado nacional.
- El calendario es el de Lima. El servidor está en Alemania: una hoja registrada a las 20:00 en Lima ya es "mañana" en UTC y el plazo arrancaba un día tarde. Se convierte la fecha con
Intl.DateTimeFormaty la zonaAmerica/Limay se trabaja solo con fechas civiles, sin hora. Es el mismo problema de servidor en UTC y usuarios en Lima.
Los feriados fijos que incluimos son 1 de enero, 1 de mayo, 29 de junio, 28 y 29 de julio, 30 de agosto, 8 de octubre, 1 de noviembre, 8 y 25 de diciembre. Jueves y Viernes Santo se calculan con el algoritmo de Pascua, porque caen siempre en día hábil y ignorarlos sí mueve el plazo.
El criterio con el resto es conservador a propósito. Omitir un feriado acorta el plazo calculado: el panel te apura de más, un error barato. Incluir uno que no existe lo alarga y te hace creer que estás en plazo cuando ya venciste, un error caro. Los feriados de leyes puntuales, los días no laborables del sector público y los regionales quedan fuera. El comentario del código lo dice con todas sus letras: es una alarma para no olvidarte, no una opinión legal.
Avisar antes de que venza
Un cron diario a las 8:00 revisa las hojas pendientes y avisa las que están a 5 días hábiles o menos. El panel usa el mismo umbral para pintar la fila en rojo, así que la alerta del correo y lo que ves en pantalla nunca se contradicen. También cuenta pendientes, por vencer y vencidas, y exporta el libro de un año entero en CSV para archivarlo o entregarlo si te lo piden. Sobre el diseño de estos avisos hay otra nota: avisos por capas.
La trampa de las hojas de prueba
El primer disparo del cron destapó una hoja de verificación, "Verificacion Deploy" con un correo de ejemplo, creada semanas antes al probar un despliegue. En un sistema estaba pendiente y vencida, y avisaba todos los días. En otro estaba respondida pero ensuciaba el CSV del libro. Las borré y reinicié la secuencia a 1, para que el primer reclamo real fuera el 000001.
El libro es un registro que se exporta y se entrega. Una hoja de QA sin responder convierte el aviso diario en ruido que aprendes a ignorar, y el día que llegue un reclamo real, también lo ignorarás. Prueba en desarrollo. Si algo llega a producción, límpialo antes del primer cliente.
Checklist para tu libro virtual
- Aviso visible del libro: enlace en el pie de todas las páginas de venta.
- Copia al consumidor: acuse por correo con el código al enviar.
- Plazo de 15 días hábiles: en el texto de tu página, contados desde el día siguiente.
- Fecha de Lima: registra una hoja a las 20:00 y mira qué fecha queda.
- Respuesta con constancia: la hoja se sella solo si el correo salió.
- Alerta anticipada: cron o aviso a 5 días hábiles.
- Respaldo físico: libro en papel para cuando falle el virtual.
- Sin hojas de prueba: revisa la tabla antes del primer cliente.
Esto es experiencia de implementación, no asesoría legal. Para tu caso, la fuente es la norma y el Indecopi. Los sistemas donde lo aplicamos: wapi, Arca y SortealoPE.