Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   TICKET BAI (TicketBAI); Nuevo sistema de la Agencia Tributaria del Pais Vasco (https://www.clubdelphi.com/foros/showthread.php?t=94264)

bilbur 03-05-2021 09:50:24

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 540765)
Nosotros encadenamos con la última factura de la misma serie.


Preguntas frecuentes


¿Cómo se realiza el encadenamiento de la factura anterior?


El sistema TicketBAI implica que cada factura debe identificar la factura anterior (serie,
número, fecha y 100 primeros caracteres de la firma). Aunque en el esquema del
fichero TicketBAI estos campos no son obligatorios, esta circunstancia se debe a que
existen varias situaciones en los que este requisito no es exigible (p. ej. la primera
factura, o en caso de rotura del dispositivo).
Dentro de este encadenamiento, cada factura solo puede tener como máximo una
única factura anterior, es decir cada factura de un obligado tributario solo puede estar
referenciada como factura anterior en una única factura de dicho obligado tributario.
El cumplimiento del requisito de encadenamiento depende de la forma de
funcionamiento del sistema de facturación:
Si un mismo dispositivo o centro de facturación emite facturas de diferentes
series, el requisito de encadenamiento debe identificar la factura anterior
expedida, con independencia de la serie dentro de ese dispositivo o centro de
facturación (por ejemplo, a una factura de una serie ordinaria le puede preceder
una factura rectificativa de otra serie).


Igualmente, si el sistema de facturación es un sistema totalmente centralizado,
el encadenamiento se refiere a la última factura expedida por el sistema en
orden temporal.

En concreto, la aplicación “Haz tu factura” funcionaría como un sistema de facturación
totalmente “centralizado”, por lo que encadena todas las facturas en orden temporal.
Si son necesarios varios procesos de facturación (se podrían asimilar a centros de
facturación) para dar respuesta a varios usuarios concurrentes de una misma empresa
de forma paralela, se debería encadenar en orden temporal dentro de cada proceso o
centro de facturación, con independencia de la serie. En este caso, debe existir un
número acotado de procesos o colas de facturación, asociado al número de usuarios
concurrentes por empresa emisora de facturas

Neftali [Germán.Estévez] 03-05-2021 13:57:50

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 540765)
Nosotros encadenamos con la última factura de la misma serie.


Tienes razón bilbur.
Estaba pensando en el cálculo del HASh no del encadenamiento...

Borro el mensaje anterior para evitar confusiones.

bilbur 03-05-2021 15:48:49

Cita:

Empezado por Sistel (Mensaje 540764)
¡¡¡¡ Genial, Bilbur !!!!

Estaba atrancado con el tema de la firma.
No conseguía firmar el XML sin errores.
Seguro que con tu clase Firmador, salgo, por fín, del atolladero.

Un cordial saludo


Si necesitas ayuda en la implementación, me dices. No sea que se me olvidara subir algo.
Para comprobar las firmas y antes de enviarlas yo utilizo estos dos enlaces

http://tools.chilkat.io/xmlDsigVerify.cshtml

https://web.uanataca.com/pe/servicio...ma-electronica

Si te da correcto en las dos validaciones pues ¡eureka!

bilbur 03-05-2021 20:21:32

PHP Envío a TBAI GIP
 
Os adjunto lo que tengo hecho para el envío a Gipuzkoa
Este envío es el más sencillo
Más o menos lo que hago es:
  1. Proceso previo o simultáneo a la emisión y firma de la factura
  2. En el directorio donde están las facturas firmadas, creo, si no están, los directorios de Envios y Respuestas.
  3. Si la factura firmada existe en el directorio de facturas firmadas, la envío a TBAI GIP
  4. Me guardo la respuesta y si es afirmativa muevo la factura firmada al directorio de Envios
<div>
Código PHP:

if($hacienda_foral == 'GIP' && $orden_tbai != '000000')     {    
    
$directorio_TBAI $originales."TBAI/".$cif_340."/";
    
$directorio_TBAI_envios $originales."TBAI/".$cif_340."/Envios/";        
    if (!
is_dir($directorio_TBAI_envios))  mkdir($directorio_TBAI_envios0777);
    
$directorio_respuestas $directorio_TBAI.'Respuestas/';   
    if (!
is_dir($directorio_respuestas))  mkdir($directorio_respuestas0777);    

    
$estado_tbai '';
    
$xml_enviado_tbai $orden_tbai.'.xsig';
    
$guardado_enviar_tbai $directorio_TBAI.$xml_enviado_tbai;    
    if (
file_exists($guardado_enviar_tbai)) 
    {    
    
$estado_tbai 'No enviado';
    
$descripcion_TBAI $estado_tbai;
    
$xml file_get_contents($guardado_enviar_tbai);

    
$header_soap = array(
    
"Content-Type: application/xml;charset=utf-8",
    
"Accept: application/xml",
    
"Content-length: ".strlen($xml)
    );

$soap_do curl_init();
curl_setopt($soap_doCURLOPT_URL$url_TBAI );
curl_setopt($soap_doCURLOPT_CONNECTTIMEOUT100);
curl_setopt($soap_doCURLOPT_TIMEOUT,        100);
curl_setopt($soap_doCURLOPT_RETURNTRANSFERtrue);
curl_setopt($soap_doCURLOPT_FOLLOWLOCATIONtrue);
curl_setopt($soap_doCURLOPT_SSL_VERIFYPEERfalse);
curl_setopt($soap_doCURLOPT_SSL_VERIFYHOSTfalse);
curl_setopt($soap_doCURLOPT_USERAGENT'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)');
curl_setopt($soap_doCURLOPT_POST,           true );
curl_setopt($soap_doCURLOPT_SSLCERT,        getcwd().'/_certificandos'.$alias_pdf.'/'.$cif_340.'.pem' );
curl_setopt($soap_doCURLOPT_POSTFIELDS,     $xml);
curl_setopt($soap_doCURLOPT_HTTPHEADER,     $header_soap);

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

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

    
$use_errors libxml_use_internal_errors(true);    
    
$parser simplexml_load_string($response);
    if (
$parser === false) {
    echo 
"<br>No se puede cargar el fichero xml devuelto por la TBA GIP.<br><br>";
    echo 
"<br>";    
    echo 
"<br><b>Respuesta de la TBAI GIP:</b><br><br>";    
    
print_r($response);
    }
    
libxml_clear_errors();
    
libxml_use_internal_errors($use_errors);    
    if (
$parser === false) exit();
    
$parser->asXML($directorio_respuestas.$orden_tbai.'.xml');
    }

    
$facturas_en_TBAI $parser;
    if (
$facturas_en_TBAI === false)    
    {
    echo 
"<br><b>Respuesta de TBAI parser:</b><br><br>";
    
print_r ($facturas_en_TBAI);
    }
    
$guardado_enviado_tbai $directorio_TBAI_envios.$xml_enviado_tbai;
    
    
$nodo $facturas_en_TBAI->Salida;
    
$Estado $nodo->Estado;    
    if(
$Estado == '00')    
    
rename($guardado_enviar_tbai,$guardado_enviado_tbai); /// atencion a esto
    
unset($facturas_en_TBAI);
    }    
     } 
// if($hacienda_foral == 'GIP') 

</div>Aparte tengo un script para visualizar la respuesta
En este lo más interesante puede ser la generación de la url del mensaje TBAI para verlo como si se tratara del código QR



Código PHP:

<?php

    $directorio_respuestas 
$directorio_TBAI.'Respuestas/';   
    if (!
is_dir($directorio_respuestas))  mkdir($directorio_respuestas0777);
    
$directorio_envios $directorio_TBAI.'Envios/';   
    if (!
is_dir($directorio_envios))  mkdir($directorio_envios0777);
    
    
$estado_tbai '';

    
$xml_enviado_tbai $orden_tbai.'.xsig';    
    
$guardado_enviado_tbai $directorio_envios.$xml_enviado_tbai;    
    if (
file_exists($guardado_enviado_tbai)) 
    
$estado_tbai 'Enviado'; else $estado_tbai 'No enviado';
    
$descripcion_TBAI $estado_tbai;

    if(
$estado_tbai == 'Enviado')
    {    
    
$msg_TBAI '';
    
$xml_actual_enviado simplexml_load_file($guardado_enviado_tbai);    
    
$signatureNodeActual $xml_actual_enviado->children('ds'true)->Signature;    
    
$SignatureValueFirmaFacturaActual $signatureNodeActual->SignatureValue;
    
$SignatureValueFirmaFacturaActual substr($SignatureValueFirmaFacturaActual,0,13);    
    
$factura_tbai_serie  $xml_actual_enviado->Factura->CabeceraFactura->SerieFactura;    
    
$factura_tbai_numero $xml_actual_enviado->Factura->CabeceraFactura->NumFactura;
    
$factura_tbai_fecha  $xml_actual_enviado->Factura->CabeceraFactura->FechaExpedicionFactura;    
    
$factura_tbai_fecha_dd substr($factura_tbai_fecha,0,2);
    
$factura_tbai_fecha_mm substr($factura_tbai_fecha,3,2);    
    
$factura_tbai_fecha_aa substr($factura_tbai_fecha,-2);        
    
$factura_tbai_importe  $xml_actual_enviado->Factura->DatosFactura->ImporteTotalFactura;        
    
$TBAIID  'TBAI'.$caracterSeparador.$cif_340.$caracterSeparador.$factura_tbai_fecha_dd;
    
$TBAIID .= $factura_tbai_fecha_mm.$factura_tbai_fecha_aa.$caracterSeparador;
    
$TBAIID .= $SignatureValueFirmaFacturaActual.$caracterSeparador;
    
$TBAIID utf8_encode($TBAIID);    
    
$cod_crc8 crc8($TBAIID);
    
$TBAIID  $TBAIID.$cod_crc8;
    unset(
$xml_actual_enviado);
    
$msg_TBAI =  $url_TBAI_QR.'?id='.$TBAIID.'&s='.$factura_tbai_serie.'&nf='.$factura_tbai_numero.'&i='.$factura_tbai_importe;
    
$msg_TBAI utf8_encode($msg_TBAI);    
    
$cod_crc8 crc8($msg_TBAI);
    
$msg_TBAI $msg_TBAI.'&cr='.$cod_crc8;    
    
$xml_respuesta $orden_tbai.'.xml';
    
$guardado_respuesta $directorio_respuestas.$xml_respuesta;
    if (
file_exists($guardado_respuesta)) 
    {
    
$respuesta_tbai simplexml_load_file($guardado_respuesta);
    if (
$respuesta_tbai === false) {
    
$estado_tbai 'No se puede leer la respuesta de TBAI';
    } else {
    
$estado_tbai 'Existe respuesta de TBAI';
    }
    } else {
    
$estado_tbai 'No se encuentra la respuesta de TBAI';
    
$sin_respuesta_tbai     '<?xml version="1.0" encoding="UTF-8"?>';
    
$sin_respuesta_tbai    .= '<Salida></Salida>';
    
$respuesta_tbai simplexml_load_string($sin_respuesta_tbai);    
    }
    
$descripcion_TBAI $estado_tbai;

    
$nodo $respuesta_tbai->Salida;
    
$Estado $nodo->Estado;
    
$FechaRecepcion $nodo->FechaRecepcion;

    if(
$Estado == '00')
    {    
    
$IdentificadorTBAI $nodo->IdentificadorTBAI;    
    
$Descripcion $nodo->Descripcion;
    
$Descripcion utf8_decode($Descripcion);
    
$CSV_tbai 'CSV: '.$nodo->CSV;
    
$ResultadosValidacion $nodo->ResultadosValidacion;
    
$CodigoRV $ResultadosValidacion->Codigo;
    if(
$CodigoRV)    
    
$DescripcionRV $errores_envio_TBAI["$CodigoRV"];    
    
$estado_tbai 'Correcto';    
    
$descripcion_TBAI $estado_tbai.': '.$IdentificadorTBAI.' '.$FechaRecepcion.' '.$Descripcion.' '.$CSV_tbai;
    if(
$CodigoRV)
    {    
    
$descripcion_TBAI .= ' '.$CodigoRV.' '.$DescripcionRV;
    
$estado_tbai 'Aviso';    
    }
    }    
    
    if(
$Estado == '01')    
    {
    
$ResultadosValidacion $nodo->ResultadosValidacion;
    
$CodigoRV $ResultadosValidacion->Codigo;
    
$DescripcionRV $errores_envio_TBAI["$CodigoRV"];    
    if(
substr($DescripcionRV,0,5) == 'Aviso' || $CodigoRV == '005' )
    
$estado_tbai 'Aviso';    
    else    
$estado_tbai 'Rechazado';
    
$descripcion_TBAI $estado_tbai.': '.$FechaRecepcion.' '.$CodigoRV.' '.$DescripcionRV;
    }
    unset(
$respuesta_tbai);
    } 
//  enviado

Tengo, si interesa, la generación del código QR para PDF con la libreria fpdf.


Comentamos ...

Galaxian 04-05-2021 08:56:52

Cita:

Empezado por bilbur (Mensaje 540761)
Se encadena con la última generada sea de la serie que sea

Muchas gracias bilbur.

Aprovecho la ocasión para lanzar otra pregunta -de nota- al que ni las haciendas de Guipúzcoa y Vizcaya han respondido: ¿como se declaran las operaciones hechas a comisión por terminales externos pero que se cobran con el programa (por ejemplo las recargas de móviles)? En estos casos, el programa genera una factura simplificada por importe cero, pues las ventas a comisión no son ventas propias del negocio:

• ¿Hay declarar estas facturas? En su caso ¿debe llevar el QR?
• ¿Qué pasa con la comisión? ¿no habría que declararla en el 140 de batuz?
• Y el más difícil todavía: ¿y si la comisión es variable dependiendo de las ventas (ONCE y loterías) y no se conoce hasta que se recibe la factura?

¿Nadie más se ha encontrado con este caso o alguno similar?

Un saludo

keys 04-05-2021 09:34:53

Hola.

Yo entiendo que hablas de un suplido.

En el caso en el que, en una factura, por ejemplo, además de los honorarios de un profesional se documentase un suplido, el importe del suplido no formaría parte de la base imponible del IVA pero estas facturas deben cumplir igualmente los requisitos TicketBAI.

En cambio, si únicamente se quisiera documentar un suplido, se trataría de una operación en la que no se documenta ninguna entrega de bienes ni prestación de servicios realizada por el profesional en el desarrollo de su actividad, ya que en estos casos el empresario actuaría como mero intermediario, satisfaciendo sumas de dinero del cliente a un tercero por mandato expreso. En este caso, no habría obligación de expedir factura de acuerdo con lo dispuesto en el Reglamento de facturación, pudiéndose documentar la operación en un recibo u otro justificante. Por tanto, un documento en el que solo se informe de un suplido quedaría fuera del ámbito de aplicación de TicketBAI.

Luego en el 140 tiene que ir como un ingreso sin factura.

bilbur 04-05-2021 11:05:17

Cita:

Empezado por Galaxian (Mensaje 540782)
Muchas gracias bilbur.

Aprovecho la ocasión para lanzar otra pregunta -de nota- al que ni las haciendas de Guipúzcoa y Vizcaya han respondido: ¿como se declaran las operaciones hechas a comisión por terminales externos pero que se cobran con el programa (por ejemplo las recargas de móviles)? En estos casos, el programa genera una factura simplificada por importe cero, pues las ventas a comisión no son ventas propias del negocio:

• ¿Hay declarar estas facturas? En su caso ¿debe llevar el QR?
• ¿Qué pasa con la comisión? ¿no habría que declararla en el 140 de batuz?
• Y el más difícil todavía: ¿y si la comisión es variable dependiendo de las ventas (ONCE y loterías) y no se conoce hasta que se recibe la factura?

¿Nadie más se ha encontrado con este caso o alguno similar?

Un saludo


Entiendo que si se emite factura, aunque importe sea cero, hay que declararla en TBAI y estar a lo que ponga en la factura emitida.
Yo si que las declaro en SII.
A mi se me da, a veces, el caso de factura emitida total cero por venta de mercancía p.e. 10 y devolución de envases tb de -10, total 0,00.

Así no "pierdo" número de factura ni encadenamientos

Lo mejor, probar ahora en pruebas (BIZ y GIP) y ver el resultado
Si da error, enviar correo a los dos y a esperar

batuzail 04-05-2021 11:49:28

Proceso de facturación
 
Hola,Voy a empezar a desarrollar el acceso a ticketBai, tengo una pregunta de concepto, por si alguno que ya tenga la solución puede contestarme.
En mi caso generamos la facturas una vez a la semana, generamos cientos de facturas.


¿Hay que realizar una petición por factura y asignar a ese documento el código y el QR en el momento de la generación?


¿Se pueden generar las facturas y posteriormente acceder a ticketbai cuando se imprimen?


Voy implementar sobre VB6 y .NET, usando Chilkat y SecureBlackBlox.


Gracias

keys 04-05-2021 11:58:14

Cita:

Empezado por bilbur (Mensaje 540784)
Entiendo que si se emite factura, aunque importe sea cero, hay que declararla en TBAI y estar a lo que ponga en la factura emitida.
Yo si que las declaro en SII.
A mi se me da, a veces, el caso de factura emitida total cero por venta de mercancía p.e. 10 y devolución de envases tb de -10, total 0,00.

Así no "pierdo" número de factura ni encadenamientos

Lo mejor, probar ahora en pruebas (BIZ y GIP) y ver el resultado
Si da error, enviar correo a los dos y a esperar

El problema es que ese tipo de iva es un iva no sujeto y como envies una factura con importe cero y con iva no sujeto TBAI da error. A nosotros ya se nos planteo el caso y nos contestaron con lo que he puesto antes. Si el importe es cero y no hay base imponible hay que generar un recibo y no una factura.

Sólo se puede incluir en una factura que tenga otros conceptos con base imponible a iva.

Sistel 04-05-2021 12:12:59

Cita:

Empezado por batuzail (Mensaje 540785)
...
En mi caso generamos la facturas una vez a la semana, generamos cientos de facturas.
¿Hay que realizar una petición por factura y asignar a ese documento el código y el QR en el momento de la generación?
¿Se pueden generar las facturas y posteriormente acceder a ticketbai cuando se imprimen?
...

Hola,

La factura está completa cuando obtienes su XML firmado.
Para obtener el XML firmado de la factura no necesitas acceder a ningún sitio externo.
Es un proceso local.

Otra cosa diferente es su envío a Hacienda Foral.
Si es de Gipuzkoa, debe hacerse el envío inmediatamente después de haber generado el XML firmado (salvo que obtengas de Hacienda una autorización para el envío posterior por no tener conexión ni fija ni móvil a Internet).
Si es de Bizkaia, tienes el plazo normal que había para las declaraciones de IVA (trimestrales o mensuales según la empresa o en un plazo de 4 días si es una empresa obligada al SII), pero se envían dentro del capítulo 1.1 del LROE.

Pero para imprimirla (o enviarla por email como PDF) tienes que añadir en la parte de abajo del documento el código TBAI y el código QR.
Esos códigos TBAI y QR puedes obtenerlos cuando vayas a imprimirla. No los necesitas antes.

Es lo que yo he entendido, pero se admiten correcciones.

Saludos

Galaxian 04-05-2021 12:15:31

Cita:

Empezado por keys (Mensaje 540786)
El problema es que ese tipo de iva es un iva no sujeto y como envies una factura con importe cero y con iva no sujeto TBAI da error. A nosotros ya se nos planteo el caso y nos contestaron con lo que he puesto antes. Si el importe es cero y no hay base imponible hay que generar un recibo y no una factura.

Sólo se puede incluir en una factura que tenga otros conceptos con base imponible a iva.

Esa es otra, porque las ventas en agencia (que así es como se llaman oficialmente), además de a retención por IRPF al ser una actividad profesional, están sujetas a IVA, aunque sobre la comisión, por lo que es un IVA soportado, no repercutido.

Cágate lorito.

batuzail 04-05-2021 12:27:57

Cita:

Empezado por Sistel (Mensaje 540787)
Hola,

La factura está completa cuando obtienes su XML firmado.
Para obtener el XML firmado de la factura no necesitas acceder a ningún sitio externo.
Es un proceso local.

Otra cosa diferente es su envío a Hacienda Foral.
Si es de Gipuzkoa, debe hacerse el envío inmediatamente después de haber generado el XML firmado (salvo que obtengas de Hacienda una autorización para el envío posterior por no tener conexión ni fija ni móvil a Internet).
Si es de Bizkaia, tienes el plazo normal que había para las declaraciones de IVA (trimestrales o mensuales según la empresa o en un plazo de 4 días si es una empresa obligada al SII), pero se envían dentro del capítulo 1.1 del LROE.

Pero para imprimirla (o enviarla por email como PDF) tienes que añadir en la parte de abajo del documento el código TBAI y el código QR.
Esos códigos TBAI y QR puedes obtenerlos cuando vayas a imprimirla. No los necesitas antes.

Es lo que yo he entendido, pero se admiten correcciones.

Saludos


Genial, entonces el proceso consta en generar y firmar xml cuando en mi sistsema se genera la factura y en el momento de imprimir/enviar la factura envio a TBAI y recupero codigo y QR para insertar en el documento.


Gracias

Galaxian 04-05-2021 12:30:19

Cita:

Empezado por keys (Mensaje 540783)
Hola.

Yo entiendo que hablas de un suplido.

En el caso en el que, en una factura, por ejemplo, además de los honorarios de un profesional se documentase un suplido, el importe del suplido no formaría parte de la base imponible del IVA pero estas facturas deben cumplir igualmente los requisitos TicketBAI.

En cambio, si únicamente se quisiera documentar un suplido, se trataría de una operación en la que no se documenta ninguna entrega de bienes ni prestación de servicios realizada por el profesional en el desarrollo de su actividad, ya que en estos casos el empresario actuaría como mero intermediario, satisfaciendo sumas de dinero del cliente a un tercero por mandato expreso. En este caso, no habría obligación de expedir factura de acuerdo con lo dispuesto en el Reglamento de facturación, pudiéndose documentar la operación en un recibo u otro justificante. Por tanto, un documento en el que solo se informe de un suplido quedaría fuera del ámbito de aplicación de TicketBAI.

Luego en el 140 tiene que ir como un ingreso sin factura.

No es un suplido ya que no es el vendedor el que pone el dinero sino el cliente. En todo caso sería un cobro por adelantado.

Me da que esto va a ser trabajo del gestor, que es el que lo declarará en 140 1.2.

keys 04-05-2021 12:51:31

Segun dice en la pregunta

Cita:

En estos casos, el programa genera una factura simplificada por importe cero, pues las ventas a comisión no son ventas propias del negocio:
Por lo tanto es un servicio que realiza otra empresa pero lo paga a través de ti. Si no estoy equivovado es un suplido.

Cita:

Un gasto suplido es un gasto que un profesional tiene a cuenta de un tercero. Es decir, se trata de un gasto que el profesional paga en nombre del cliente, quien posteriormente asumirá este importe

Galaxian 04-05-2021 13:06:18

Cita:

Empezado por keys (Mensaje 540791)
Un gasto suplido es un gasto que un profesional tiene a cuenta de un tercero. Es decir, se trata de un gasto que el profesional paga en nombre del cliente, quien posteriormente asumirá este importe

Yo no lo veo así: no es el profesional quien adelanta el dinero sino el que lo cobra del cliente, por lo que sería un cobro por adelantado del que detraerá una parte por su servicio. Es decir, un cobro por adelantado por partida doble: una parte por cuenta del vendedor y otra por cuenta propia al haber cobrado por adelantado su comisión, de la que deberá soportar el IVA y la retención.

Neftali [Germán.Estévez] 04-05-2021 15:32:24

Hola batuzail.
Te recomiendo que te leas todo el hilo porque te aclarará bastantes dudas. Hay bastantes mensajes, pero creo que vale la pena el tiempo.

Aquí también tienes un documento con preguntas y respuestas que han publicado desde TicketBAI/Batuz. Ahí también aclaran muchos conceptos.
Por lo demás en cuanto a las preguntas, este gráfico aclara bastante bien los pasos del proceso.

Cita:

Empezado por batuzail (Mensaje 540785)
En mi caso generamos la facturas una vez a la semana, generamos cientos de facturas.
¿Hay que realizar una petición por factura y asignar a ese documento el código y el QR en el momento de la generación?

Alava y Guipuzcoa exigen que el envío sea inmediato tras generar la factura. Cuando generes la factura debes crear el XML, firmarlo y enviarlo (para ello has generado el IDTBAI). Revisa los pasos del gráfico anterior.

Cita:

Empezado por batuzail (Mensaje 540785)
¿Se pueden generar las facturas y posteriormente acceder a ticketbai cuando se imprimen?

Si te refieres a enviarlas a la administración, tal y como te he dicho, el envío debe ser en el momento de realizar la factura.
La impresión en papel/EMail/PDF/... (con el QR y el Id de TBAI incluídos) puede ser posterior.

bilbur 04-05-2021 19:06:37

Cita:

Empezado por keys (Mensaje 540786)
El problema es que ese tipo de iva es un iva no sujeto y como envies una factura con importe cero y con iva no sujeto TBAI da error. A nosotros ya se nos planteo el caso y nos contestaron con lo que he puesto antes. Si el importe es cero y no hay base imponible hay que generar un recibo y no una factura.

Sólo se puede incluir en una factura que tenga otros conceptos con base imponible a iva.


Para complicarlo más:
Factura emitida base imponible cero
Código:

<Factura>
<CabeceraFactura>
<SerieFactura>FV</SerieFactura>
<NumFactura>005864</NumFactura>
<FechaExpedicionFactura>04-05-2021</FechaExpedicionFactura>
<HoraExpedicionFactura>18:48:34</HoraExpedicionFactura>
<FacturaEmitidaSustitucionSimplificada>N</FacturaEmitidaSustitucionSimplificada>
</CabeceraFactura>
<DatosFactura>
<FechaOperacion>04-05-2021</FechaOperacion>
<DescripcionFactura>FACTURA DE VENTA</DescripcionFactura>
<ImporteTotalFactura>0.00</ImporteTotalFactura>
<Claves>
<IDClave>
<ClaveRegimenIvaOpTrascendencia>01</ClaveRegimenIvaOpTrascendencia>
</IDClave>
</Claves>
</DatosFactura>
<TipoDesglose>
<DesgloseFactura>
<Sujeta>
<NoExenta>
<DetalleNoExenta>
<TipoNoExenta>S1</TipoNoExenta>
<DesgloseIVA>
<DetalleIVA>
<BaseImponible>0.00</BaseImponible>
<TipoImpositivo>4.00</TipoImpositivo>
<CuotaImpuesto>0.00</CuotaImpuesto>

</DetalleIVA>
</DesgloseIVA>
</DetalleNoExenta>
</NoExenta>
</Sujeta>
</DesgloseFactura>
</TipoDesglose>
</Factura>

Respuesta TBAI BIZ


Código:

<Registro>
<Identificador>
<IDFactura>
<SerieFactura>FV</SerieFactura>
<NumFactura>005864</NumFactura>
<FechaExpedicionFactura>04-05-2021</FechaExpedicionFactura>
</IDFactura>
</Identificador>
<SituacionRegistro>
<EstadoRegistro>Correcto</EstadoRegistro>
</SituacionRegistro>
 </Registro>

Parece ser que SI se pueden enviar facturas con base imponible, cuotas y total cero
He probado con facturas simplificadas total cero
Código:

<Registro>
<Identificador>
<IDFactura>
<SerieFactura>SV</SerieFactura>
<NumFactura>000444</NumFactura>
<FechaExpedicionFactura>04-05-2021</FechaExpedicionFactura>
</IDFactura>
</Identificador>
<SituacionRegistro>
<EstadoRegistro>Correcto</EstadoRegistro>
</SituacionRegistro>
</Registro>

También correcto en TBAi BIZ


Es posible que no tenga que ver con vuestra casuística, las pruebas son venta de bienes, no prestaciones de servicios.


Un saludo

keys 05-05-2021 08:09:54

Hola.

Una factura con base 0 si puedes mandar. Lo que no puedes mandar es una factura con solo una línea de no sujeta. Que es como se envía un suplido.

Elyas 05-05-2021 09:59:12

Yo sigo liado con los encadenamientos xDD, cuál de estos supuestos vale y cuál de estos ,no?

Pj.

Sería correcto hacerlo así OPCION A:

1.Registramos la factura 001, recibida
2.Registramos la factura 002, rechazadas (pj por fallo del sistema ticketbai)
3.Registramos la factura 003 y la encadenamos a la última factura recibida en TicketBAI, la 001, recibida
4.Se arregla el error y ahora volvemos a mandar la 002 encadenando a la última factura registrada en ticketbai, la 003.

O hay que hacerlo tal que así OPCIÓN B:

1.Registramos la factura 001, recibida
2.Registramos la factura 002, rechazada (pj por fallo del sistema ticketbai)
3.Registramos la factura 003, encadenando a la 002, obtenemos el warning.
4.Volvemos a enviar la 002 encadenada a la 001.

p.d. me han dichos los de ticketbai que van a sacar pronto nueva versión con opción de subsanar facturas. cómo es posible que a estas alturas metan nuevas funciones posiblemente tan vitales? en fin

tejano 05-05-2021 10:58:07

Factura encadenada
 
Cita:

Empezado por Elyas (Mensaje 540804)
Yo sigo liado con los encadenamientos xDD, cuál de estos supuestos vale y cuál de estos ,no?

Pj.

Sería correcto hacerlo así OPCION A:

1.Registramos la factura 001, recibida
2.Registramos la factura 002, rechazadas (pj por fallo del sistema ticketbai)
3.Registramos la factura 003 y la encadenamos a la última factura recibida en TicketBAI, la 001, recibida
4.Se arregla el error y ahora volvemos a mandar la 002 encadenando a la última factura registrada en ticketbai, la 003.

O hay que hacerlo tal que así OPCIÓN B:

1.Registramos la factura 001, recibida
2.Registramos la factura 002, rechazada (pj por fallo del sistema ticketbai)
3.Registramos la factura 003, encadenando a la 002, obtenemos el warning.
4.Volvemos a enviar la 002 encadenada a la 001.

p.d. me han dichos los de ticketbai que van a sacar pronto nueva versión con opción de subsanar facturas. cómo es posible que a estas alturas metan nuevas funciones posiblemente tan vitales? en fin

Os adjunto respuesta de Batuz con respuesta a las encadenadas. Nosotros tenemos varias delegaciones y cada delegación una serie de factura y no tienen las facturas del resto de delegaciones, por lo que el encadenamiento lo vamos a realizar en base a la serie.

Contestación de Batuz:

El sistema TicketBAI implica que cada factura debe identificar la factura anterior (serie, número, fecha y 100 primeros caracteres de la firma). Aunque en el esquema del fichero TicketBAI estos campos no son obligatorios, esta circunstancia se debe a que existen varias situaciones en los que este requisito no es exigible (p. ej. la primera factura, o en caso de rotura del dispositivo).

El cumplimiento del requisito de encadenamiento depende de la forma de funcionamiento del sistema de facturación:
- Si un mismo dispositivo emite facturas de diferentes series, el requisito de encadenamiento debe identificar la factura anterior expedida, con independencia de la serie (por ejemplo, a una factura de una serie ordinaria le puede preceder una factura rectificativa de otra serie).
- Igualmente, si el sistema de facturación es un sistema centralizado que genera las series y los números de facturación, con independencia del dispositivo que se esté utilizando, el encadenamiento se refiere a la última factura expedida por el sistema.
En concreto, “Haz tu factura” funcionaría como un sistema de facturación “centralizado”, por lo que encadena las facturas independientemente de la serie.
- No obstante, si existen diferentes dispositivos o centros de facturación, los cuales sólo expiden facturas dentro de una serie específica para cada dispositivo o centro, el encadenamiento se produce dentro de cada serie.
Este último parece ser el caso al que se refiere la pregunta planteada.


La franja horaria es GMT +2. Ahora son las 03:01:21.

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