PDF-012A MVP BILLING NOTIFICATION¶
Fecha: 2026-06-24
Estado:
PDF-012A MVP BILLING NOTIFICATION / CANDIDATE PREPARED / ENVIO REAL BLOQUEADO POR DEFECTO / SIN SQL WRITE / SIN WOOCOMMERCE
Objetivo MVP¶
Preparar el primer flujo funcional para que una solicitud de alta ecommerce candidate pueda generar una notificacion interna controlada a facturacion.
El gate no abre runtime productivo. Solo deja armado un payload sintetico, un email interno candidate y un script de envio bloqueado por defecto.
Precondiciones¶
PDF-011P SECRET_READY.PDF-011Q SMTP_CONNECTION_READY.PDF-011T SENT_SINGLE_EMAILcon evidencia sanitizada del single-send real aoperaciones@ladirecta.com.ar.SGCqueda read-only para OpenClaw/WooCommerce.- WooCommerce no se toca en este gate.
Payload candidate¶
El script prepare_pdf_012a_billing_notification_candidate.py genera una
solicitud sintetica/sanitizada con:
- razon social
CLIENTE DEMO PDF012A SRL; - CUIT sanitizado
30-00000000-0; - email sanitizado
alta-pdf012a@example.invalid; - WhatsApp sanitizado
+54 9 11 0000-0000; - domicilio fiscal sintetico;
- domicilio pedido sintetico;
- rubro
Comercio minorista demo; - comentario sintetico;
- estado
PENDING_SGC_REVIEW.
La salida queda en tmp/pdf-012a/billing_notification_candidate.json y
tmp/pdf-012a/billing_notification_candidate.txt, ignorada por Git y sin
valores sensibles.
Destinatario interno¶
- Destinatario principal permitido:
facturacion@ladirecta.com.ar. - Sin CC.
- Sin BCC.
- Sin adjuntos.
operaciones@ladirecta.com.arqueda solo como copia futura controlada si se autoriza expresamente en otro gate.
Bloqueo por defecto¶
send_pdf_012a_billing_notification_test.py queda bloqueado por defecto.
Sin --confirm-send registra BLOCKED_BY_DEFAULT_NOT_SENT, imprime solo un
resumen sanitizado y confirma real_email_sent=false.
Cualquier envio real posterior requiere autorizacion explicita separada y el
flag --confirm-send. El script esta limitado a maximo 1 email y solo al
destinatario facturacion@ladirecta.com.ar.
Evidencia esperada¶
- Candidate sanitizado en
tmp/pdf-012a/billing_notification_candidate.json. - Resumen TXT sanitizado en
tmp/pdf-012a/billing_notification_candidate.txt. - Evidencia de bloqueo en
tmp/pdf-012a/billing_notification_send_evidence.json. status=BLOCKED_BY_DEFAULT_NOT_SENTal ejecutar sin flag.real_email_sent=false.- Confirmaciones de sin CC, sin BCC y sin adjuntos.
- Confirmaciones de sin SQL write, sin
SGCwrite y sin WooCommerce API.
Que NO se hizo¶
- No se envio email real.
- No se envio a clientes reales.
- No se envio a proveedores.
- No se envio a listas.
- No se uso CC.
- No se uso BCC.
- No se usaron adjuntos.
- No se imprimieron secrets.
- No se imprimieron passwords.
- No se imprimieron connection strings.
- No se usaron datos reales de clientes.
- No se ejecuto SQL write.
- No se escribio en
SGC. - No se toco WooCommerce API.
- No se tocaron datos reales.
- No se toco VPS/prod con datos.
- No se activo runtime, sync, scheduler, cron ni pipelines.
Como esto nos acerca a produccion¶
Este gate convierte la prueba SMTP real ya validada en una pieza funcional de negocio: una solicitud ecommerce candidate puede transformarse en un aviso interno a facturacion, con datos sanitizados, destinatario permitido, evidencia auditable y bloqueo operativo.
El paso todavia no integra WooCommerce ni escribe en SGC, pero reduce el
riesgo del siguiente avance porque deja separado el template, el destinatario,
la evidencia y el control de autorizacion.
Proximo paso¶
Ejecutar un gate PDF-012B de envio real controlado a
facturacion@ladirecta.com.ar, solo si hay autorizacion explicita, usando el
mismo candidate sanitizado, sin CC/BCC/adjuntos y con evidencia sanitizada.