# INTERLINK WhatsApp v2.9.1 - Facturas pendientes según esquema ISP

Este parche usa la estructura real de tu tabla `invoices`:

- `customer_id`
- `total`
- `due_date`
- `status`
- no existe `balance`

Por eso calcula:

- `status = paid` => saldo 0
- `status != paid` => saldo pendiente = `total`

## No toca

- webhook.php
- MetaSender.php
- WhatsAppConfig.php
- AiService.php
- Token Meta
- API Key OpenAI
- flujo conversacional

## Instalación

```bash
cd /var/www/html

cp _inc/whatsapp_v2/admin/api_receipts.php _inc/whatsapp_v2/admin/api_receipts.php.bak_$(date +%F_%H%M)
cp _inc/whatsapp_v2/admin/receipts.php _inc/whatsapp_v2/admin/receipts.php.bak_$(date +%F_%H%M) 2>/dev/null || true

unzip -o /root/interlink_whatsapp_v2_9_1_facturas_isp_schema.zip

chown -R www-data:www-data _inc/whatsapp_v2

php _inc/whatsapp_v2/tools/apply_v291_invoices_schema.php
python3 _inc/whatsapp_v2/tools/apply_v291_receipts_ui_hint.py

php -l _inc/whatsapp_v2/admin/api_receipts.php
php -l _inc/whatsapp_v2/admin/receipts.php

systemctl restart apache2
```

## Prueba

Abrí:

`https://api.solucionesdc.com.ar/_inc/whatsapp_v2/admin/receipts.php`

Abrí el comprobante del cliente `Chavez Santos #67`.

La lista de facturas debería mostrar, al menos:

- Factura #2631
- total/saldo $32.000
- estado unpaid

## Siguiente paso para imputación exacta

Para adaptar la imputación al 100% a tu CRM necesitamos:

```sql
DESCRIBE payments;
```

Con eso se ajusta el insert real a la tabla de pagos sin adivinar campos obligatorios.
