@devlas/dte-sii 2.22.0 → 2.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SiiPortalAuth.js +30 -0
- package/package.json +1 -1
package/SiiPortalAuth.js
CHANGED
|
@@ -821,7 +821,37 @@ class SiiPortalAuth {
|
|
|
821
821
|
* El HTML tiene filas <tr><td>Label</td><td> Valor</td></tr>
|
|
822
822
|
* @private
|
|
823
823
|
*/
|
|
824
|
+
/**
|
|
825
|
+
* "el Contribuyente no está autorizado para operar en esta modalidad" — la empresa nunca
|
|
826
|
+
* quedó postulada (y/o enrolada) como emisor electrónico ante el SII, así que ad_empresa2
|
|
827
|
+
* ni siquiera devuelve la tabla de datos que `_parsearTablaEmpresa` espera: devuelve esta
|
|
828
|
+
* página de rechazo. Mismo patrón y mismo código de error que `CafSolicitor.esEmpresaNoAutorizada`
|
|
829
|
+
* (`EMPRESA_NO_AUTORIZADA`) — ahí ya existía para otro flujo, acá faltaba. Sin esto caía en
|
|
830
|
+
* el genérico "no se encontraron datos de resolución", que no dice qué falta. Caso real
|
|
831
|
+
* verificado el 2026-09-10 (RUT anonimizado en los tests).
|
|
832
|
+
*/
|
|
833
|
+
static esEmpresaNoAutorizada(html) {
|
|
834
|
+
const texto = String(html || '').replace(/<[^>]+>/g, ' ');
|
|
835
|
+
// El SII usa dos sujetos distintos para el mismo rechazo, segun la pagina: "la empresa
|
|
836
|
+
// no esta autorizada" (ver CafSolicitor.esEmpresaNoAutorizada) y "el Contribuyente no
|
|
837
|
+
// esta autorizado" (ad_empresa2, caso real 2026-09-10) -- distinto genero tambien
|
|
838
|
+
// (autorizada/autorizado), por eso el [oa] al final en vez de repetir todo el patron.
|
|
839
|
+
return /(empresa|contribuyente)\s+no\s+est.{0,8}\s*autorizad[oa]\s+para\s+operar/i.test(texto);
|
|
840
|
+
}
|
|
841
|
+
|
|
824
842
|
static _parsearTablaEmpresa(html) {
|
|
843
|
+
if (SiiPortalAuth.esEmpresaNoAutorizada(html)) {
|
|
844
|
+
const err = new Error(
|
|
845
|
+
'SiiPortalAuth: la empresa no está autorizada para operar en esta modalidad. ' +
|
|
846
|
+
'No es un problema de datos ni de sesión: el SII no reconoce a la empresa como ' +
|
|
847
|
+
'emisor electrónico en este ambiente. Las dos causas habituales son que todavía ' +
|
|
848
|
+
'no complete la certificación (en producción no queda autorizada hasta entonces) ' +
|
|
849
|
+
'o que nunca se haya corrido la Postulación/Enrolamiento.'
|
|
850
|
+
);
|
|
851
|
+
err.code = 'EMPRESA_NO_AUTORIZADA';
|
|
852
|
+
throw err;
|
|
853
|
+
}
|
|
854
|
+
|
|
825
855
|
const datos = {};
|
|
826
856
|
const decode = s => s
|
|
827
857
|
.replace(/<[^>]+>/g, '')
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devlas/dte-sii",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.23.0",
|
|
4
4
|
"description": "Facturación y boletas electrónicas para el SII de Chile. Genera, timbra, firma y envía DTEs, libros electrónicos y automatiza la certificación.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "dte-sii.d.ts",
|