Revocar Autorización
Exportar contenido
Cancela la autorización legal que permite a Factux enviar registros a VeriFactu.
- Ve a Configuración > VeriFactu.
- Localiza la sección de autorización — debe estar en estado Firmada (verde).
- Clic en “Revocar autorización a Factux” — se abre diálogo de confirmación.
- Lee la advertencia — las facturas dejarán de enviarse a VeriFactu.
- Clic en “Revocar” — la autorización se marca como revocada.
ALERTA: Esta acción es irreversible. Deberás crear una nueva autorización si quieres reactivar VeriFactu.
Efectos de la revocación
Sección titulada «Efectos de la revocación»| Antes | Después |
|---|---|
| Facturas se envían a VeriFactu | Facturas NO se envían a VeriFactu |
| Badge Firmada (verde) | Badge Revocada (gris) |
| PDF incluye QR VeriFactu | PDF sin QR VeriFactu |
| Botón “Revocar” visible | Botón “Crear Nueva Autorización” visible |
Cuando revocar
Sección titulada «Cuando revocar»| Situación | Acción recomendada |
|---|---|
| Ya no quieres usar VeriFactu | Revocar + desactivar opt-in |
| Cambio de razón social | Revocar + crear nueva con nuevos datos |
| Firma por error | Revocar inmediatamente |
| Problemas de privacidad | Revocar + contactar soporte |
Como se que lo hice bien
Sección titulada «Como se que lo hice bien»- Badge cambia a Revocada (gris).
- Aparece fecha de revocación: “Revocada el 16/02/2026”.
- Botón “Crear Nueva Autorización” disponible.
- Toast de confirmación: “Autorización revocada”.
- Las nuevas facturas emitidas NO se envían a VeriFactu.
Errores comunes
Sección titulada «Errores comunes»| Mensaje | Causa | Solución |
|---|---|---|
| Botón deshabilitado | Autorización no firmada | Solo puedes revocar autorizaciones firmadas |
| ”No authorization to revoke” | Sin autorización activa | Crear autorización primero |
Detalles tecnicos — Revocar Autorizacion
Sección titulada «Detalles tecnicos — Revocar Autorizacion»Mutation: revokeAuthorizationMutation
Ubicación: VeriFactuAuthorizationForm.tsx
Flujo:
const { error } = await supabase .from('verifactu_authorizations') .update({ status: 'revoked', revoked_at: new Date().toISOString(), revoked_by: user.id, // Si está autenticado revocation_reason: null, // Opcional: motivo }) .eq('id', authorization.id);Invalidación de cache:
queryClient.invalidateQueries({ queryKey: ['verifactu-authorization', currentBusinessId]});queryClient.invalidateQueries({ queryKey: ['verifactu-status']});Verificación de estado revocado
Función: isVeriFactuEnabled()
Condición de revocación:
SELECT id FROM verifactu_authorizationsWHERE business_id = '<business_id>' AND status = 'signed' AND signed_at IS NOT NULL AND revoked_at IS NULL -- Esta condición falla si está revocadaSi revoked_at IS NOT NULL → La query no devuelve resultados → isVeriFactuEnabled() retorna false.
Resultado:
- Facturas emitidas después de la revocación NO se envían a VeriFactu
- Campo
verifactu_statuspermaneceNULL - No se genera CSV ni QR
Crear nueva autorización tras revocación
El índice único solo afecta a autorizaciones activas:
CREATE UNIQUE INDEX idx_one_active_auth_per_business ON verifactu_authorizations(business_id) WHERE status IN ('pending', 'signed');Como status = 'revoked' no está en la condición WHERE, el índice NO impide crear una nueva autorización.
Flujo permitido:
- Revocar autorización actual (status = ‘revoked’)
- Crear nueva autorización (status = ‘pending’)
- Firmar nueva autorización (status = ‘signed’)
Estado final:
- 1 autorización revocada (histórico)
- 1 autorización firmada (activa)