Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Colaboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-05-2021
bilbur bilbur is offline
Miembro
 
Registrado: dic 2019
Posts: 62
Poder: 7
bilbur Va por buen camino
Cita:
Empezado por joselugrk Ver Mensaje
Hola,

Estoy teniendo problemas a la hora de enviar los ficheros LROE 140 al servidor de pruebas de Batuz. Me da el error B4_1000001.

El XML no cumple el esquema.[Linea:2
Columna:200] Error:cvc-elt.1.a: Cannot find the declaration of element
'lrpficfcsgap:LROEPF140IngresosConFacturaConSGAltaPeticion'.

Código:
 $xml  = "<?xml version='1.0' encoding='UTF-8'?>";
    $xml .= "<lrpficfcsgap:LROEPF140IngresosConFacturaConSGAltaPeticion
    xmlns:lrpficfcsgap='https://www.batuz.eus/fitxategiak/batuz/LROE/esquemas/LROE_PF_140_1_1_Ingresos_ConfacturaConSG_AltaPeticion_V1_0_1.xsd'>";

    $xml .= "    <Cabecera>
Mira si es por esto
Responder Con Cita
  #2  
Antiguo 09-05-2021
bilbur bilbur is offline
Miembro
 
Registrado: dic 2019
Posts: 62
Poder: 7
bilbur Va por buen camino
Envios a BATUZ Certificados

En su momento envié a Batuz facturas firmadas con certificado de representante FNMT
Estas facturas las envié como persona física modelo LROE 140
Todo correcto


Intento enviar el modelo LROE 240 con certificado de representante FNMT y me da el error N3_0000002 El interesado no está identificado
NOTA: El envío a GIP lo hago con este certificado sin problemas


Mis dudas son:
  • Si he de identificarme, registrarme en Batuz con el certificado de representante
  • Si en pruebas sirven los certificados de representante FNMT
  • Si en producción servirán estos certificados
Un saludo
Responder Con Cita
  #3  
Antiguo 10-05-2021
Sistel Sistel is offline
Miembro
 
Registrado: nov 2019
Ubicación: Bilbao
Posts: 484
Poder: 7
Sistel Va por buen camino
Cita:
Empezado por bilbur Ver Mensaje
En su momento envié a Batuz facturas firmadas con certificado de representante FNMT
Estas facturas las envié como persona física modelo LROE 140
Todo correcto


Intento enviar el modelo LROE 240 con certificado de representante FNMT y me da el error N3_0000002 El interesado no está identificado
NOTA: El envío a GIP lo hago con este certificado sin problemas


Mis dudas son:
  • Si he de identificarme, registrarme en Batuz con el certificado de representante
  • Si en pruebas sirven los certificados de representante FNMT
  • Si en producción servirán estos certificados
Un saludo
Hola Bilbur,

No sé si te valdrá de algo, pero, por si acaso, te cuento:

En su día, hice una consulta a [email protected] que puede estar relacionada con tu problema.
Pregunté:
¿Podríamos emplear, también, para el envío de los LROE, correspondientes a nuestros clientes, nuestro certificado digital en lugar del de cada contribuyente?

Respuesta:
La respuesta es Sí.
Aun no se han publicado las órdenes forales que regulan el envío de las anotaciones al LROE. No obstante, en el texto de las mismas se recogerán dos situaciones distintas, ya previstas en la actualidad en relación con el SII, y que se trasladarán igualmente a Batuz:
El suministro electrónico de las anotaciones al LROE podrá ser efectuado por un tercero o tercera que actúe en representación del contribuyente, de acuerdo con lo establecido en la normativa tributaria.
Asimismo, al igual que en el SII, el Departamento de Hacienda y Finanzas habilitará el suministro electrónico de las anotaciones al LROE en representación de terceras personas a las entidades que lo soliciten a través del formulario electrónico que se apruebe al efecto. En particular, si se utiliza esta figura, los estatutos de las sociedad solicitante deberán completar, dentro de las actividad que conforman su objeto social, la realización de actividades de representación.
En estos dos casos de representación, la entidad representante podrá utilizar su propio certificado para realizar los envíos.


De acuerdo con eso, entiendo que si las facturas que envías a Batuz son emitidas por distinta empresa a la de ese certificado de representante, se necesitará estar dado de alta en ese registro de representaciones que van a habilitar.

Por otro lado, para la firma del XML de la factura se precisa que el emisor de la factura sea la misma empresa del certificado con el que se firma.
En caso contrario, se necesitará incluir en SignedProperties de la firma el nodo SignerRolev2 o SignerRole con valor “Thirdparty” o “tercero” como se indica en la página 3 de la normativa de firma electrónica TicketBAI
(https://www.batuz.eus/fitxategiak/ba...onica_v1_0.pdf)

Saludos

Última edición por Sistel fecha: 10-05-2021 a las 00:19:56.
Responder Con Cita
  #4  
Antiguo 10-05-2021
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.441
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por bilbur Ver Mensaje
Intento enviar el modelo LROE 240 con certificado de representante FNMT y me da el error N3_0000002 El interesado no está identificado
NOTA: El envío a GIP lo hago con este certificado sin problemas

La contestación que nos dieron a nosotros sobre este error fue:
Cita:
Los certificados a utilizar en el entorno de pruebas son los de Producción y las presentaciones deben realizarse en nombre propio, en las que el obligado coincida con la persona del certificado.

Se admiten los siguientes certificados:
§ Certificado de persona física.
§ Certificado de representante de entidad.
§ Sello de empresa/entidad.
§ Certificado de dispositivo (debe estar censado para el obligado tributario en DFB/BFA).
Además, el entorno de pruebas del sistema de envíos masivos del LROE los datos del interesado y del presentador que se envían en las peticiones al servicio web deben existir en el sistema, ya que se validan. No se deben utilizar razones sociales o nombres y apellidos ficticios ya que se valida tanto el NIF como la razón social, para el caso de la persona jurídica y el nombre y apellidos para la persona física.
Si los datos enviados son reales y aun así indica que la persona interesada o el presentador no está identificado, para dar de alta dichos datos debe entrar en la Sede Electrónica de Bizkaia (www.ebizkaia.eus) con el certificado que está utilizando para el envío de la petición e identificarse entrando en la opción “Mis Gestiones ->Mis Expedientes” que aparece en el menú superior de la pantalla. Al ser la primera vez que entra, le pedirá datos de contacto que se deberán rellenar y guardar.
Con esto los datos de las figuras del certificado quedarán registrados en el sistema. El alta estará disponible al día siguiente y se podrán utilizar en el sistema de envíos masivos que actualmente sólo permite actuar en nombre propio.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 11-05-2021
bilbur bilbur is offline
Miembro
 
Registrado: dic 2019
Posts: 62
Poder: 7
bilbur Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Si los datos enviados son reales y aun así indica que la persona interesada o el presentador no está identificado, para dar de alta dichos datos debe entrar en la Sede Electrónica de Bizkaia (www.ebizkaia.eus) con el certificado que está utilizando para el envío de la petición e identificarse entrando en la opción “Mis Gestiones ->Mis Expedientes” que aparece en el menú superior de la pantalla. Al ser la primera vez que entra, le pedirá datos de contacto que se deberán rellenar y guardar.
Con esto los datos de las figuras del certificado quedarán registrados en el sistema. El alta estará disponible al día siguiente y se podrán utilizar en el sistema de envíos masivos que actualmente sólo permite actuar en nombre propio.
Gracias, por lo visto estaba dado de alta como persona física y me faltaba el alta como repersentante.
Envíos a batuz correctos
Comienzo con las consultas
Un saludo
Responder Con Cita
  #6  
Antiguo 28-11-2021
infoser101 infoser101 is offline
Miembro
 
Registrado: sep 2021
Posts: 28
Poder: 0
infoser101 Va por buen camino
Error en consulta QR

Alguien sabe la diferencia en la url del QR en araba?
Al consultar un QR de facturas admitida devuelve siempre el error "Parámetros incorrectos"

Si embargo, este mismo código efectúa la consulta a Gipuzkoa sin problemas

La generación del CRC se hace con toda la url previa al parámetro "cr".
La url se deja sin la / final, tal y como indica la especificación
Tampoco existen caracteres a codificar en ninguno de los ejemplos probados

Por ejemplo, los parámetros de una url que da error en el entrono de pruebas de Araba es:

id=TBAI-A78648144-210121-qcSwKs6XuYTTq-062&s=01&nf=7684&i=63.26&cr=195
Responder Con Cita
  #7  
Antiguo 29-11-2021
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.441
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por infoser101 Ver Mensaje
Alguien sabe la diferencia en la url del QR en araba?

Prueba con el mismo código de Guipuzkoa y sin quitar la / a la URL.
Yo estoy usando esto y funciona sin problemas:

Código:
TicketBAIID:TBAI-B05430756-291121-oBvVV+V6VnNb1-158
Serie:A
NumFactura:25000
Importe:3.63
URL:https://pruebas-ticketbai.araba.eus/tbai/qrtbai/

RESULT:  https://pruebas-ticketbai.araba.eus/tbai/qrtbai/?id=TBAI-B05430756-291121-oBvVV%2BV6VnNb1-158&s=A&nf=25000&i=3.63&cr=106
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #8  
Antiguo 29-11-2021
infoser101 infoser101 is offline
Miembro
 
Registrado: sep 2021
Posts: 28
Poder: 0
infoser101 Va por buen camino
Ahora si funciona, muchas gracias!!

La especificación dice concretamente que para Araba debe quitarse la barra final para el CRC, pero YA no es así.

Estas cosas son las que vuelven loco a cualquiera: Se mira una y otra vez el código asumiendo que el error es tuyo y no un cambio de especificación
Responder Con Cita
  #9  
Antiguo 10-05-2021
joselugrk joselugrk is offline
Miembro
 
Registrado: abr 2021
Posts: 29
Poder: 0
joselugrk Va por buen camino
Ayuda Chilkat - Error Envío Fichero

Cita:
Empezado por bilbur Ver Mensaje
Código:
 $xml  = "<?xml version='1.0' encoding='UTF-8'?>";
    $xml .= "<lrpficfcsgap:LROEPF140IngresosConFacturaConSGAltaPeticion
    xmlns:lrpficfcsgap='.../fitxategiak/batuz/LROE/esquemas/LROE_PF_140_1_1_Ingresos_ConfacturaConSG_AltaPeticion_V1_0_1.xsd'>";

    $xml .= "    <Cabecera>
Mira si es por esto
Hola bilbur,

He cambiado la versión del fichero LROE_PF_140_1_1_Ingresos_ConfacturaConSG_AltaPeticion_V1_0_2.xsd a LROE_PF_140_1_1_Ingresos_ConfacturaConSG_AltaPeticion_V1_0_1.xsd y ahora me está dando otro error B4_2000033 pero ya hemos avanzado mucho.

Saludos y muchas gracias,
Responder Con Cita
  #10  
Antiguo 11-05-2021
Sistel Sistel is offline
Miembro
 
Registrado: nov 2019
Ubicación: Bilbao
Posts: 484
Poder: 7
Sistel Va por buen camino
Cita:
Empezado por joselugrk Ver Mensaje
Hola bilbur,

He cambiado la versión del fichero LROE_PF_140_1_1_Ingresos_ConfacturaConSG_AltaPeticion_V1_0_2.xsd a LROE_PF_140_1_1_Ingresos_ConfacturaConSG_AltaPeticion_V1_0_1.xsd y ahora me está dando otro error B4_2000033 pero ya hemos avanzado mucho.

Saludos y muchas gracias,
Hola joselugrk,

Eso ya tiene muy buena pinta.
El error B4_2000033, según el documento de validaciones y errores del LROE (https://www.batuz.eus/fitxategiak/ba...res_V1_0_5.pdf) es
La Cuota del impuesto tiene un valor incorrecto para los campos Tipo impositivo y Base imponible suministrados.

Ya es error normal en los datos económicos de la factura.

Saludos
Responder Con Cita
  #11  
Antiguo 11-05-2021
joselugrk joselugrk is offline
Miembro
 
Registrado: abr 2021
Posts: 29
Poder: 0
joselugrk Va por buen camino
Ayuda Chilkat - Error Envío Fichero

Cita:
Empezado por Sistel Ver Mensaje
Hola joselugrk,

Eso ya tiene muy buena pinta.
El error B4_2000033, según el documento de validaciones y errores del LROE (.../fitxategiak/batuz/lroe/Batuz_LROE_Validaciones_Errores_V1_0_5.pdf) es
La Cuota del impuesto tiene un valor incorrecto para los campos Tipo impositivo y Base imponible suministrados.

Ya es error normal en los datos económicos de la factura.

Saludos
Hola Sistel,

Si miras en las especificaciones de envío pone la versión LROE_PF_140_1_1_Ingresos_ConfacturaConSG_AltaPeticion_V1_0_2.xsd. Y en el ejemplo
Ejemplo_1_LROE_PF_140_IngresosConFacturaConSG_79732487C.xml también pone la misma versión.

Parece que están desfasados en la creación de los documentos y su implantación en el entorno de pruebas. ¿Cómo les habrá funcionado a ellos?

Saludos y mi agradecimiento por el esfuerzo realizado,
Joselu
Responder Con Cita
  #12  
Antiguo 11-05-2021
bilbur bilbur is offline
Miembro
 
Registrado: dic 2019
Posts: 62
Poder: 7
bilbur Va por buen camino
Consultas a Batuz

Me funcionan bien las consultas, excepto el filtro por fechas


Código:
<?xml version='1.0' encoding='UTF-8'?>
<lrpjfecsgcp:LROEPJ240FacturasEmitidasConSGConsultaPeticion
xmlns:lrpjfecsgcp='https://www.batuz.eus/fitxategiak/batuz/LROE/esquemas/LROE_PJ_240_1_1_FacturasEmitidas_ConSG_ConsultaPeticion_V1_0_0.xsd'>
    <Cabecera>
    <Modelo>240</Modelo>
    <Capitulo>1</Capitulo>
    <Subcapitulo>1.1</Subcapitulo>
    <Operacion>C00</Operacion>
    <Version>1.0</Version>
    <Ejercicio>2021</Ejercicio>
    <ObligadoTributario>
    <NIF>xxxxxxx</NIF>
    <ApellidosNombreRazonSocial>xxxxxxxxx, S.L.</ApellidosNombreRazonSocial>
    </ObligadoTributario>
    </Cabecera>
    <FiltroConsultaFacturasEmitidasConSG>
    <CabeceraFactura>
    <FechaExpedicionFactura>
    <Desde>11-05-2021</Desde>
    <Hasta>11-05-2021</Hasta>
    </FechaExpedicionFactura>
    </CabeceraFactura>
    <NumPaginaConsulta>1</NumPaginaConsulta>
    </FiltroConsultaFacturasEmitidasConSG>
    </lrpjfecsgcp:LROEPJ240FacturasEmitidasConSGConsultaPeticion>
Me devuelve el Error B4_1000001 El XML no cumple el esquema.[Linea:13 Columna:91] Error:cvc-complex-type.2.4.a

Por más que miro el xsd no encuentro el error
Seguro que es cosa de "ellos" pero por preguntar que no quede
Gracias
Responder Con Cita
  #13  
Antiguo 11-05-2021
bilbur bilbur is offline
Miembro
 
Registrado: dic 2019
Posts: 62
Poder: 7
bilbur Va por buen camino
PHP Envío a TBAI BIZ Batuz

Como ya me funciona bien lo de los envíos a batuz os dejo el código


Lo primero que hago es separar por ejercicios el envío, no sea que en enero quira enviar facturas de diciembre y de enero


Código PHP:

    if (file_exists($guardado_enviar_tbai)) {
    $fra_enviada = file_get_contents($guardado_enviar_tbai);
    $fichero = base64_encode($fra_enviada);    
     $xml_facturas[] = "<TicketBai>".$fichero."</TicketBai>";    // array de facturas
    }
   $xml  = "<?xml version='1.0' encoding='UTF-8'?>";
    $xml .= "<lrpjfecsgap:LROEPJ240FacturasEmitidasConSGAltaPeticion
    xmlns:lrpjfecsgap='https://www.batuz.eus/fitxategiak/batuz/LROE/esquemas/LROE_PJ_240_1_1_FacturasEmitidas_ConSG_AltaPeticion_V1_0_1.xsd'>";
    $xml .= "<Cabecera>
    <Modelo>240</Modelo>
    <Capitulo>1</Capitulo>
    <Subcapitulo>1.1</Subcapitulo>
    <Operacion>A00</Operacion>
    <Version>1.0</Version>
    <Ejercicio>".$xml_ejercicio."</Ejercicio>  // ejercicio 2020 o 2021 o 2022 ...
    <ObligadoTributario>
    <NIF>".$cif_340."</NIF>
    <ApellidosNombreRazonSocial>".$mombre_340."</ApellidosNombreRazonSocial>
    </ObligadoTributario>
    </Cabecera>";
    
    $xml .= "<FacturasEmitidas>";
    
    foreach($xml_facturas as $value) // array con los tbai en base64
    {
    $xml .= "<FacturaEmitida>";
     $xml .= $value;
    $xml .= "</FacturaEmitida>";    
    }
    $xml .= "</FacturasEmitidas>";
    $xml .= "</lrpjfecsgap:LROEPJ240FacturasEmitidasConSGAltaPeticion>";

    $ahora = round(microtime(true) * 10000);
    $ahora = sprintf ( "%.0f", $ahora );    // nombre del fichero xml de envío
    $guardar_como_xml = 'LROE_240_'.$ahora.'.xml';
    file_put_contents($directorio_TBAI_envios.$guardar_como_xml, $xml);
    $guardar_como_gzip = 'LROE_240_'.$ahora.'.xml.gz';
    
    $xml_data = file_get_contents($directorio_TBAI_envios.$guardar_como_xml);
    $gzip_data = gzencode($xml_data); //  nombre del fichero gz de envío

$eusbizkaian3data  = '{"con":"LROE","apa":"1.1","inte":';
$eusbizkaian3data .= '{"nif":"'.$cif_340.'","nrs":"'.$mombre_340.'"},';
$eusbizkaian3data .= '"drs":{"mode":"240","ejer":"'.$xml_ejercicio.'"}}';

    $header_soap = array(
    "Accept-Encoding: gzip",
    "Content-Encoding: gzip",
    "Content-Type: application/octet-stream",
    "eus-bizkaia-n3-version: 1.0",
    "eus-bizkaia-n3-content-type: application/xml",
    "eus-bizkaia-n3-data: ".$eusbizkaian3data,
    "Content-length: ".strlen($gzip_data)
    );

$soap_do = curl_init();
curl_setopt($soap_do, CURLOPT_URL,                 $url_TBAI); // url de envío pruebas
curl_setopt($soap_do, CURLOPT_CONNECTTIMEOUT,     500);
curl_setopt($soap_do, CURLOPT_TIMEOUT,            500);
curl_setopt($soap_do, CURLOPT_RETURNTRANSFER,     true);
curl_setopt($soap_do, CURLOPT_HEADER  ,     true);
curl_setopt($soap_do, CURLOPT_FOLLOWLOCATION,     true);
curl_setopt($soap_do, CURLOPT_SSL_VERIFYPEER,     false);
curl_setopt($soap_do, CURLOPT_SSL_VERIFYHOST,     false);
curl_setopt($soap_do, CURLOPT_USERAGENT,         'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)');
curl_setopt($soap_do, CURLOPT_POST,               true);
curl_setopt($soap_do, CURLOPT_SSLCERT,            getcwd().'/_certificandos'.$alias_pdf.'/'.$cif_340.'.pem');
curl_setopt($soap_do, CURLOPT_POSTFIELDS,         $gzip_data);
curl_setopt($soap_do, CURLOPT_HTTPHEADER,         $header_soap);
chdir('ticketBAI');    

    $response = curl_exec($soap_do); 
    $size_response = curl_getinfo($soap_do, CURLINFO_HEADER_SIZE);
    $header_response = substr($response, 0, $size_response);
    $body_response = substr($response, $size_response);

    function get_headers_from_curl_response($header_response) // para la cabecera respuesta
    {
    $headers_r = array();
    foreach (explode("\r\n", $header_response) as $i => $line)
    if ($i !== 0)
    {
    list ($key, $value) = explode(': ', $line);
    $headers_r[$key] = utf8_encode($value);
    }
    return $headers_r;
    }
Continúo para ver las cabeceras de respuesta


Código PHP:
    $headers_r get_headers_from_curl_response($header_response);
//var_dump($headers_r);
    
$respuesta_tipo $headers_r['eus-bizkaia-n3-tipo-respuesta'];

    if(
$respuesta_tipo == 'Incorrecto')
    {
    include_once(
$_SERVER['DOCUMENT_ROOT'].'/_configs/_header_ifx.php' );        
    
$respuesta_codigo  $headers_r['eus-bizkaia-n3-codigo-respuesta'];
    
$respuesta_mensaje $headers_r['eus-bizkaia-n3-mensaje-respuesta'];        
    echo 
"<br><TABLE align=center width=97% class=gris>";
    echo 
"<tr class=amarillo>";
    echo 
"<td align=left><div id=tit1>
    Respuesta del envío de hoy a TBAI Bizkaia de facturas emitidas firmadas"
;
    echo 
"&nbsp;&nbsp;&nbsp;<b>$respuesta_tipo</b></td></tr>";
    echo 
"<tr class=amarillo>";    
    echo 
"<td align=left><div id=tit1>
    Error 
$respuesta_codigo";
    echo 
"&nbsp;&nbsp;&nbsp;<b>$respuesta_mensaje</b></td>";    
    echo
"</tr></table><br>";
//    exit();
    

Si va todo bien descomprimo, descomprimo y guardo


Código PHP:
    if(!curl_exec($soap_do)) {
    
$err 'Error: ' curl_error($soap_do);
    
curl_close($soap_do);
    echo 
"<br>No se puede conectar con la TBAI Bizkaia.<br><br>";    
    
print_r($err);
    exit();
    echo 
"<br>";    
    echo 
"<br><b>Respuesta de la TBAI: Bizkaia</b><br><br>";    
    
print_r($response);
    exit();
    } else {
    
curl_close($soap_do);



    
$xmlString gzdecode(gzdecode($body_response));
    
//$xmlString = gzdecode($xmlString);
    
    
$xmlString preg_replace('/(<\s*)\w+:/','$1',$xmlString);   // removes <xxx:
    
$xmlString preg_replace('/(<\/\s*)\w+:/','$1',$xmlString); // removes </xxx:
    
$xmlString preg_replace('/\s+xmlns:[^>]+/','',$xmlString); // removes xmlns:...    

    
$use_errors libxml_use_internal_errors(true);    
    
$parser simplexml_load_string($xmlString);
    if (
$parser === false) {
    echo 
"<br>No se puede cargar el fichero comprimido devuelto por la TBAI.<br><br>";
    echo 
"<br>";    
    echo 
"<br><b>Respuesta de la TBAI 0:</b><br><br>";    
    
print_r($headers_r);

    exit();
    }
    
libxml_clear_errors();
    
libxml_use_internal_errors($use_errors);    
    if (
$parser === false) exit();
    
$parser->asXML($directorio_respuestas.'LROE_240_'.$ahora.'.xml');
    } 
Para mostrar los registros, pendiente de afinar


Código PHP:
    $facturas_en_TBAI $parser;
    if (
$facturas_en_TBAI === false)    
    {
    echo 
"<br><b>Respuesta de TBAI parser:</b><br><br>";
    
print_r ($facturas_en_TBAI);
    }

    echo 
"<br><TABLE align=center width=97% class=gris>";
    echo 
"<tr class=amarillo>";
    echo 
"<td align=left><div id=tit1>
    Respuesta del envío de hoy a TBAI Bizkaia de facturas emitidas firmadas"
;
    echo 
"&nbsp;&nbsp;&nbsp;<b>$respuesta_tipo</b></td>";
    echo
"</tr></table><br>";
    
    if(
$respuesta_tipo == 'Incorrecto' || $respuesta_tipo == 'Parcialmente correcto')
    {
    include_once(
$_SERVER['DOCUMENT_ROOT'].'/_configs/_header_ifx.php' );        
    
$respuesta_codigo  $headers_r['eus-bizkaia-n3-codigo-respuesta'];
    
$respuesta_mensaje $headers_r['eus-bizkaia-n3-mensaje-respuesta'];        

    echo 
"<TABLE align=center width=97% class=gris id='sortedtable'><thead>";
    echo 
"<tr class=odd>";
    echo 
"<th align=left><div id=tit2>Factura</div></th>";
    echo 
"<th align=left><div id=tit2>Fecha</div></th>";
    echo 
"<th align=left><div id=tit2>Error</div></th>";
    echo 
"<th align=left><div id=tit2>Descripción</div></th>";    
    echo 
"</tr></thead>";

    
$a 0;
    foreach (
$facturas_en_TBAI->Registros->Registro as $nodo
    {
    
$SerieFactura $nodo->Identificador->IDFactura->SerieFactura;    
    
$NumFactura $nodo->Identificador->IDFactura->NumFactura;            
    
$FechaExpedicionFactura $nodo->Identificador->IDFactura->FechaExpedicionFactura;
    
$EstadoRegistro $nodo->SituacionRegistro->EstadoRegistro;
    
$CodigoErrorRegistro $nodo->SituacionRegistro->CodigoErrorRegistro;
    
$DescripcionErrorRegistro $nodo->SituacionRegistro->DescripcionErrorRegistro;
    
$DescripcionErrorRegistro utf8_decode($DescripcionErrorRegistro);

    if(
$EstadoRegistro == 'Correcto' || $CodigoErrorRegistro == 'B4_2000003')
    {
    
$xml_enviado_tbai $guardado_enviar[$SerieFactura.'-'.$NumFactura];    
    
$guardado_enviar_tbai  $directorio_TBAI.$xml_enviado_tbai;
    
$guardado_enviado_tbai $directorio_TBAI_envios.$xml_enviado_tbai;        
    
rename($guardado_enviar_tbai,$guardado_enviado_tbai); /// atencion a esto        
    
}
        
    if(
$EstadoRegistro != 'Correcto')
    {    
    echo 
"<tr "; if( $a%== ) echo " class=odd";                
    echo 
"><td class=firstcol align=left><div id=tit3>&nbsp;".$SerieFactura.'-'.$NumFactura."</div></td>";
    echo 
"<td align=left><div id=tit3>&nbsp;".$FechaExpedicionFactura."</div></td>";
    echo 
"<td align=left><div id=tit3>&nbsp;".$CodigoErrorRegistro."</div></td>";
    echo 
"<td align=left><div id=tit3>&nbsp;".$DescripcionErrorRegistro."</div></td>";
    
    
$a++;
    echo 
"</tr>";
    }

    } 
// fin foreach ($facturas_en_TBAI->Registros->Registro as $nodo)     
    
echo '</table><br>';    
    }    
    
//  fin if($respuesta_tipo == 'Incorrecto' || $respuesta_tipo == 'Parcialmente correcto')

    
if($respuesta_tipo == 'Correcto')
    {    
    include_once(
$_SERVER['DOCUMENT_ROOT'].'/_configs/_header_ifx.php' );    
    foreach (
$facturas_en_TBAI->Registros->Registro as $nodo
    {
    
$SerieFactura $nodo->Identificador->IDFactura->SerieFactura;    
    
$NumFactura $nodo->Identificador->IDFactura->NumFactura;    
    
$xml_enviado_tbai $guardado_enviar[$SerieFactura.'-'.$NumFactura];    
    
$guardado_enviar_tbai  $directorio_TBAI.$xml_enviado_tbai;
    
$guardado_enviado_tbai $directorio_TBAI_envios.$xml_enviado_tbai;        
    
rename($guardado_enviar_tbai,$guardado_enviado_tbai); /// atencion a esto            
    
}
    }    
    
//  fin if($respuesta_tipo == 'Correcto')
    
unset($facturas_en_TBAI); 
Comentamos
Responder Con Cita
  #14  
Antiguo 11-05-2021
Sistel Sistel is offline
Miembro
 
Registrado: nov 2019
Ubicación: Bilbao
Posts: 484
Poder: 7
Sistel Va por buen camino
Cita:
Empezado por bilbur Ver Mensaje
Como ya me funciona bien lo de los envíos a batuz os dejo el código
...
Hola Bilbur,

Muchas gracias, una vez más por compartir tu código.

Aún no he llegado a la fase de envío a Batuz.
Estoy aún en la fase de firma del XML.
Y me ha venido de maravilla tu código para la firma.
¡¡¡Funciona de perlas!!!
Se parece bastante al que yo estaba desarrollando (aunque estaba atrancado) basado en https://github.com/josemmo/Facturae-PHP

Hay una detallito que no entiendo de tu clase Firmador():
Código PHP:
$signTime1 date('Y-m-d\TH:i:s+01:00'); 
¿Porqué le añades 1 segundo a la hora de la firma?

Lo dicho, muchas gracias de nuevo.

Saludos
Responder Con Cita
  #15  
Antiguo 17-11-2021
misteradrian misteradrian is offline
Miembro
 
Registrado: sep 2021
Posts: 33
Poder: 0
misteradrian Va por buen camino
Envios batuz

¡Hola de nuevo a todos !

Después de enviar, comprobar el Qr y anular de manera correcta a Gipuzkoa y Álava.
Me he dispuesto a probar a realizar lo mismo a Batuz. De aquí un poco mi duda sobre cuál creo que es el proceso de envío. Lo voy a explicar un poco a continuación, si tenéis alguna duda o hay algo en lo que me haya equivocado confirmadme :

El documento por llamarlo así “inicial”, de la factura de TicketBAI lo tengo que codificar en gzip y en base64 después. La cadena generada gracias a la codificación en base64 lo tengo que incluir dentro de otro xml dentro de los campos Ingresos->TicketBai. Y a su vez este xml “final” codificarlo también en gzip y enviarlo con las cabeceras correspondientes a los servidores de BATUZ ya sean de prueba o de producción.
¿Hay alguna parte que me haya saltado o que esté errónea?

Un saludo y muchas gracias a todos.
La verdad que sin este foro no habría conseguido nada.
Responder Con Cita
  #16  
Antiguo 09-12-2021
yasmNote yasmNote is offline
Miembro
 
Registrado: sep 2021
Posts: 26
Poder: 0
yasmNote Va por buen camino
Lroe 140

Cita:
Empezado por bilbur Ver Mensaje
Como ya me funciona bien lo de los envíos a batuz os dejo el código


Lo primero que hago es separar por ejercicios el envío, no sea que en enero quira enviar facturas de diciembre y de enero

.....
Buenos días,
Muchísimas gracias por compartir tu código.
Me gustaría saber si habéis conseguido desarrollar para el modelo 140?
Gracias
Responder Con Cita
  #17  
Antiguo 16-12-2021
musinho musinho is offline
Miembro
 
Registrado: dic 2021
Posts: 18
Poder: 0
musinho Va por buen camino
Certificados de prueba

Aupa,

Estoy intentando agregar un certificado tanto por postman como por cUrl en PHP:

Cita:
curl_setopt($soap_do, CURLOPT_SSLCERT, getcwd().'/_certificados/cert.pem');
Pero todo el rato recibo la siguiente respuesta:

Cita:
HTTP/1.1 400 Bad Request
Date: Thu, 16 Dec 2021 10:40:50 GMT
eus-bizkaia-n3-identificativo:
X-Powered-By: Undertow/1
eus-bizkaia-n3-mensaje-respuesta: Parámetro clientcert no indicado en la cabecera de la petición
eus-bizkaia-n3-codigo-respuesta: N3_0000011
eus-bizkaia-n3-numero-registro:
eus-bizkaia-n3-tipo-respuesta: Incorrecto
Content-Type: text/html; charset=UTF-8
Content-Length: 0
Connection: close
Set-Cookie: TS0171c831=0147f0636e8a03d83048cfc79d3a57d973e8e44067b1332f894a93ffd6f898fc45d17d16b5f988c255df54778 4694991c9ae2a3368; Path=/
Parámetro clientcert no indicado en la cabecera de la petición. Estoy utilizando un certificado de ejemplo de la documentación "PertsonaFisikoa_PersonaFísica.p12" convertiendola a .pem y enviandola como decía bilbur por curl. Alguien puede decirme que estoy haciendo mal?

Eskerrik asko!!
Responder Con Cita
  #18  
Antiguo 22-05-2021
Galaxian Galaxian is offline
Miembro
 
Registrado: mar 2021
Posts: 52
Poder: 6
Galaxian Va por buen camino
Buenas,

Acabo de hacer una prueba de envío del 140 y me sale un error ya conocido:

Cita:
El XML no cumple el esquema.[Linea:2 Columna:200] Error:cvc-elt.1.a: Cannot find the declaration of element 'lrpficfcsgap:LROEPF140IngresosConFacturaConSGAltaPeticion'.
Lo que significa que no puede encontrar el xsd indicado por xmlns:lrpficfcsgap, por lo que he puesto en el navegador la URL de la versión 1.0.1:

Y, efectivamente, no existe, por lo que he probado con la de la versión 1.0.2:

Y esa sí que existe, por lo que he modificado la cabecera del 140 para que coja la URL de la versión 1.0.2 y... ¡sorpresa! error 500 (error interno del servidor).

Es decir, que con la URL de la versión 1.0.1 dice que no encuentra el xsd, y cuando se pone el xsd correcto da un error 500. ¡Maravilloso!

¿A alguien más le pasa?
¿Alguna solución?
Responder Con Cita
  #19  
Antiguo 24-05-2021
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.235
Poder: 24
keys Va por buen camino
Hola a todos.

¿Alguien esta teniendo problemas hoy lunes al enviar a Bizkaia?.
Responder Con Cita
  #20  
Antiguo 24-05-2021
tejano tejano is offline
Miembro
 
Registrado: dic 2020
Posts: 132
Poder: 6
tejano Va por buen camino
Envio XML

Buenos días,
Hoy he estado en un Webinar sobre "Batuz" y me ha parecido entender hay que enviar el XML firmado a la hacienda. Yo tenía entendido que los datos del XML se envían codificados en Base64 sobre el fichero LROE y en ningún momento hay que enviar el XML firmado.
El XML firmado tenemos que tenerlo guardado por si hay alguna inspección o algo similar.
Podéis decirme si estoy en lo correcto?
Gracias
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
SII -Nuevo sistema de la Agencia Tributaria española de envío de datos vía Webservice newtron Internet 3716 19-01-2026 20:01:34
Como utilizar la ayuda del nuevo Sistema Operativo gluglu Humor 3 24-09-2007 09:39:05
Aplicacion Agencia De Viajes ArdiIIa Varios 9 20-01-2007 16:49:53
El Vasco Aguirre Al González La Taberna 5 26-05-2006 09:22:28
Microsoft ha lanzado su nuevo sistema operativo DarkByte Humor 0 25-01-2004 09:21:14


La franja horaria es GMT +2. Ahora son las 19:21:57.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi