Facturapi: fix legal payload (name/legal_name/tax_system, address, no tax_id), reuse local org, status via user key; add fiscal address fields; embed Carta Manifiesto iframe
Some checks failed
CI / lint-and-test (3.11) (push) Has been cancelled
CI / lint-and-test (3.13) (push) Has been cancelled

This commit is contained in:
2026-07-13 06:35:36 +00:00
parent b2f23ef3cf
commit 1cce81b75f
6 changed files with 209 additions and 26 deletions

View File

@@ -757,6 +757,41 @@
<span class="form-hint">Régimen del emisor según el SAT</span>
</div>
<div class="form-field form-field--span2">
<label class="form-label" for="direccion-fiscal">Calle</label>
<input class="form-input" id="direccion-fiscal" type="text" value="" placeholder="Ej: Av. Insurgentes Sur" />
</div>
<div class="form-field">
<label class="form-label" for="numero-exterior">Número Exterior</label>
<input class="form-input" id="numero-exterior" type="text" value="" placeholder="Ej: 123" />
</div>
<div class="form-field">
<label class="form-label" for="numero-interior">Número Interior</label>
<input class="form-input" id="numero-interior" type="text" value="" placeholder="Ej: 4B" />
</div>
<div class="form-field">
<label class="form-label" for="colonia-fiscal">Colonia</label>
<input class="form-input" id="colonia-fiscal" type="text" value="" />
</div>
<div class="form-field">
<label class="form-label" for="ciudad-fiscal">Ciudad</label>
<input class="form-input" id="ciudad-fiscal" type="text" value="" />
</div>
<div class="form-field">
<label class="form-label" for="municipio-fiscal">Municipio / Alcaldía</label>
<input class="form-input" id="municipio-fiscal" type="text" value="" />
</div>
<div class="form-field">
<label class="form-label" for="estado-fiscal">Estado</label>
<input class="form-input" id="estado-fiscal" type="text" value="" />
</div>
</div>
<div style="margin-top:var(--space-4);display:flex;justify-content:flex-end;gap:var(--space-3);align-items:center;">
@@ -867,6 +902,44 @@
</div>
</div>
<!-- CARTA MANIFIESTO -->
<div class="config-section" style="grid-column: span 2;">
<div class="config-section__header">
<svg viewBox="0 0 24 24">
<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/>
<polyline points="14 2 14 8 20 8"/>
<line x1="16" y1="13" x2="8" y2="13"/>
<line x1="16" y1="17" x2="8" y2="17"/>
<polyline points="10 9 9 9 8 9"/>
</svg>
<span class="config-section__title">Carta Manifiesto (SAT)</span>
</div>
<div class="config-section__body" id="manifiesto-panel">
<p style="color:var(--color-text-muted); margin-bottom:var(--space-3);">
Firma la carta manifiesto con tu <strong>FIEL</strong> (e.firma) para autorizar a Facturapi a timbrar CFDI ante el SAT.
Si no la ves, usa el botón para abrirla en una pestaña nueva.
</p>
<div style="border:1px solid var(--color-border); border-radius:var(--radius-md); overflow:hidden; background:var(--color-bg-base);">
<iframe
id="manifiesto-iframe"
src="https://www.facturapi.io/embedded/manifiesto"
title="Firma de Carta Manifiesto"
style="width:100%; height:720px; border:0; display:block;"
loading="lazy"
allow="fullscreen"
></iframe>
</div>
<div style="margin-top:var(--space-3); display:flex; gap:var(--space-3); justify-content:flex-end;">
<a class="btn btn--ghost btn--sm" href="https://www.facturapi.io/manifiesto" target="_blank" rel="noopener">
Abrir portal de firma
</a>
<button type="button" class="btn btn--secondary btn--sm" onclick="Invoicing.reloadManifiesto()">
Recargar firma
</button>
</div>
</div>
</div>
<!-- CONFIGURACIÓN DE SERIES — full width -->
<div class="config-section" style="grid-column: span 2;">
<div class="config-section__header">