$RutEmisor_esperado = '88888888-8'; // Cargar EnvioDTE y extraer arreglo con datos de carátula y DTEs $EnvioDte = new \sasco\LibreDTE\Sii\EnvioDte(); $EnvioDte->loadXML(file_get_contents($archivo_recibido)); $Caratula = $EnvioDte->getCaratula(); $Documentos = $EnvioDte->getDocumentos(); // caratula $caratula = ['RutResponde' => $RutReceptor_esperado, 'RutRecibe' => $Caratula['RutEmisor'], 'IdRespuesta' => 1]; // procesar cada DTE $RecepcionDTE = []; foreach ($Documentos as $DTE) { $estado = $DTE->getEstadoValidacion(['RUTEmisor' => $RutEmisor_esperado, 'RUTRecep' => $RutReceptor_esperado]); $RecepcionDTE[] = ['TipoDTE' => $DTE->getTipo(), 'Folio' => $DTE->getFolio(), 'FchEmis' => $DTE->getFechaEmision(), 'RUTEmisor' => $DTE->getEmisor(), 'RUTRecep' => $DTE->getReceptor(), 'MntTotal' => $DTE->getMontoTotal(), 'EstadoRecepDTE' => $estado, 'RecepDTEGlosa' => \sasco\LibreDTE\Sii\RespuestaEnvio::$estados['documento'][$estado]]; } // armar respuesta de envío $estado = $EnvioDte->getEstadoValidacion(['RutReceptor' => $RutReceptor_esperado]); $RespuestaEnvio = new \sasco\LibreDTE\Sii\RespuestaEnvio(); $RespuestaEnvio->agregarRespuestaEnvio(['NmbEnvio' => basename($archivo_recibido), 'CodEnvio' => 1, 'EnvioDTEID' => $EnvioDte->getID(), 'Digest' => $EnvioDte->getDigest(), 'RutEmisor' => $EnvioDte->getEmisor(), 'RutReceptor' => $EnvioDte->getReceptor(), 'EstadoRecepEnv' => $estado, 'RecepEnvGlosa' => \sasco\LibreDTE\Sii\RespuestaEnvio::$estados['envio'][$estado], 'NroDTE' => count($RecepcionDTE), 'RecepcionDTE' => $RecepcionDTE]); // asignar carátula y Firma $RespuestaEnvio->setCaratula($caratula); $RespuestaEnvio->setFirma(new \sasco\LibreDTE\FirmaElectronica($config['firma'])); // generar XML $xml = $RespuestaEnvio->generar(); // validar schema del XML que se generó if ($RespuestaEnvio->schemaValidate()) { // mostrar XML al usuario, deberá ser guardado y subido al SII en: // https://www4.sii.cl/pfeInternet echo $xml; } // si hubo errores mostrar foreach (\sasco\LibreDTE\Log::readAll() as $error) {