$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) {