Saltar a contenido

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_EMAIL con evidencia sanitizada del single-send real a operaciones@ladirecta.com.ar.
  • SGC queda 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.ar queda 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_SENT al ejecutar sin flag.
  • real_email_sent=false.
  • Confirmaciones de sin CC, sin BCC y sin adjuntos.
  • Confirmaciones de sin SQL write, sin SGC write 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.