# Checklist Cierre Modulo 4 (Suscripciones/Facturacion)

## Preparacion
- Ejecutar migracion `008_subscriptions_billing.sql`.
- Ejecutar migracion `011_module4_closure_hardening.sql`.
- Confirmar acceso a `dashboard?tenant=demo&module=billing`.

## Planes y limites
- Cambiar plan starter/pro/enterprise.
- Verificar precios mensual/anual.
- Verificar limite de usuarios/contactos/equipos/roles custom.

## Trial
- Aplicar trial 14 dias.
- Verificar `tenant.status = trialing`.
- Verificar `subscription.trial_ends_at`.

## Cobro recurrente
- Ejecutar `POST /cron/billing?tenant=demo`.
- Confirmar factura generada.
- Confirmar transaccion registrada.
- Ejecutar `POST /cron/billing-monitor?tenant=demo`.
- Verificar health resumen del modulo.

## Past due y retry
- Dejar proveedor en `manual`.
- Ejecutar ciclo y validar `past_due`.
- Ejecutar `POST /cron/billing-retry?tenant=demo` varias veces.
- Confirmar `failed_attempts` aumenta.
- Confirmar suspension al llegar a 3 intentos.

## Regularizacion
- Pagar factura manual en UI.
- Confirmar:
  - factura `paid`,
  - transaccion `succeeded`,
  - `tenant.status = active`,
  - `failed_attempts = 0`.

## API
- `GET /api/v1/billing/subscription?tenant=demo`
- `GET /api/v1/billing/invoices?tenant=demo`
- `GET /api/v1/billing/payment-methods?tenant=demo`
- `GET /api/v1/billing/status-history?tenant=demo`
- `GET /api/v1/billing/health?tenant=demo`
- `POST /api/v1/billing/run-cycle?tenant=demo`
- `POST /api/v1/billing/retry?tenant=demo`

## Fiscal y metodos de pago
- Guardar perfil fiscal.
- Agregar metodo de pago.
- Establecer metodo default.
- Imprimir factura (`/billing/invoice/print`).

## Backups
- Ejecutar `POST /cron/backup?tenant=demo`.
- Verificar registro en `backup_runs`.

## Tests
- `php tests/billing_smoke.php`

## Evidencias
- Captura de factura open -> paid.
- Captura de estado `past_due` -> `active`.
- Log de auditoria de operaciones de billing.
