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)

misteradrian 24-01-2022 12:40:32

Hola buenas a todos,
Tenía una duda acerca de qué valor de la firma del xml debería de poner en el envío de facturas. Si el de la factura anulada o la de la anteriormente enviada.
Os dejo las respuestas que me han dejado de las diputaciones.
Espero que os sirva a quienes se os haya planteado el mismo dilema.
Un saludo.
  • Primero envías la factura F1
  • Luego anulas la factura F1
  • Posteriormente envías la factura F2
  • Esta factura tiene que estar encadenada con la última factura enviada, aunque esté anulada.
  • Es decir, no hay que encadenar con la petición de la anulación, si no que la tienes que encadenar con la F1. En el encadenamiento debes poner los 100 caracteres de la firma de la factura F1 y NO los 100 caracteres de la anulación de la F1.

keys 24-01-2022 13:45:33

Cita:

Empezado por misteradrian (Mensaje 545027)
Hola buenas a todos,
Tenía una duda acerca de qué valor de la firma del xml debería de poner en el envío de facturas. Si el de la factura anulada o la de la anteriormente enviada.
Os dejo las respuestas que me han dejado de las diputaciones.
Espero que os sirva a quienes se os haya planteado el mismo dilema.
Un saludo.
  • Primero envías la factura F1
  • Luego anulas la factura F1
  • Posteriormente envías la factura F2
  • Esta factura tiene que estar encadenada con la última factura enviada, aunque esté anulada.
  • Es decir, no hay que encadenar con la petición de la anulación, si no que la tienes que encadenar con la F1. En el encadenamiento debes poner los 100 caracteres de la firma de la factura F1 y NO los 100 caracteres de la anulación de la F1.

Las anulaciones no cuentan para el encadenamiento de las facturas. Tu factura F2 tiene que apuntar a la F1 siempre.

Neftali [Germán.Estévez] 24-01-2022 14:01:19

Cita:

Empezado por HerensugeBeltz (Mensaje 545026)
La presente orden foral regula los requisitos del servicio de recepción, el procedimiento y las especificaciones técnicas y funcionales de los ficheros que pretenden corregir los ficheros TicketBAI que han sido rechazados.

https://egoitza.gipuzkoa.eus/gao-bog...4/c2200304.pdf

Gracias por la info.

elguille 24-01-2022 18:14:36

El interesado no está identificado
 
Hola, siguiendo vuestros ejemplos, estoy intentando enviar un 240 a Vizcaya y recibo

response status code: 200
RESP.BODY:

RESP.HEADER:
Date: Mon, 24 Jan 2022 16:51:58 GMT
Server: JBoss-EAP/7
eus-bizkaia-n3-identificativo: 5506744
X-Powered-By: Undertow/1
eus-bizkaia-n3-mensaje-respuesta: El interesado no está identificado.
eus-bizkaia-n3-codigo-respuesta: N3_0000002
eus-bizkaia-n3-numero-registro:
eus-bizkaia-n3-tipo-respuesta: Incorrecto
Content-Type: text/html; charset=UTF-8
Content-Length: 0

Y no hay manera de avanzar, entiendo que es algun problema de firma pero lo he intentado con dos firmas diferentes de la FNMT (de representante) y que segun he leido no tienen ningun problema para entrar en los expedientes de https://www.ebizkaia.eus/es/mis-expedientes

El codigo delphi , lo he hecho con las chilkat, pero recibo el mismo error con NetHTTPClient

Código Delphi [-]
procedure TForm1.enviovizcaya(Sender: TObject);
var
  glob: HCkGlobal;
  success: Boolean;
  xmlToSign: HCkXml;
  gen: HCkXmlDSigGen;
  object1: HCkXml;
  Cert: HCkCert;
  sbXml: HCkStringBuilder;
  verifier: HCkXmlDSig;
  numSigs: integer;
  verifyIdx: integer;
  verified: Boolean;
  Http: HCkHttp;
  json: HCkJsonObject;
  url: PWideChar;
  bGzip: Boolean;
  resp: HCkHttpResponse;
  status, ik1: integer;
  nombre_archivo: string;
  mid, mser, mnum, mim, mcrc: string;
  RequestBody: TFileStream;
  AResponse: IHTTPResponse;
  sb1: HCkStringBuilder;
  sb2: HCkStringBuilder;
  Xml: HCkXml;
  tspen: TStringlist;
  mcon: integer;
  Comprimido: TFileStream;
  s: TStringlist;
  m: tmemorystream;
begin
begin
  Memo1.clear;
  glob := CkGlobal_Create();
  success := CkGlobal_UnlockBundle(glob, 'xxxxxxxxxxxxxxxxxx');
  if (success <> True) then
  begin
    Memo1.Lines.Add(CkGlobal__lastErrorText(glob));
    Exit;
  end;
  status := CkGlobal_getUnlockStatus(glob);
  if (status = 2) then
  begin
    Memo1.Lines.Add('Unlocked using purchased unlock code.');
  end
  else
  begin
    Memo1.Lines.Add('Unlocked in trial mode.');
  end;

  Memo1.Lines.Add('');
  success := True;

  Xml := CkXml_Create();

  if mmodelo = '140' then
  begin
    CkXml_putTag(Xml, 'lrpficfcsgap:LROEPF140IngresosConFacturaConSGAltaPeticion');
    CkXml_AddAttribute(Xml, 'xmlns:lrpficfcsgap',
      'https://www.batuz.eus/fitxategiak/batuz/LROE/esquemas/LROE_PF_140_1_1_Ingresos_ConfacturaConSG_AltaPeticion_V1_0_2.xsd');
  end
  else
  begin
    CkXml_putTag(Xml, 'lrpficfcsgap:LROEPJ240FacturasEmitidasConSGAltaPeticion');
    CkXml_AddAttribute(Xml, 'xmlns:lrpficfcsgap',
      'https://www.batuz.eus/fitxategiak/batuz/LROE/esquemas/LROE_PJ_240_1_1_FacturasEmitidas_ConSG_AltaPeticion_V1_0_2.xsd');
  end;
  CkXml_UpdateChildContent(Xml, 'Cabecera|Modelo', pchar(mmodelo));
  CkXml_UpdateChildContent(Xml, 'Cabecera|Capitulo', '1');
  CkXml_UpdateChildContent(Xml, 'Cabecera|Subcapitulo', '1.1');
  CkXml_UpdateChildContent(Xml, 'Cabecera|Operacion', 'A00');
  CkXml_UpdateChildContent(Xml, 'Cabecera|Version', '1.0');
  CkXml_UpdateChildContent(Xml, 'Cabecera|Ejercicio', pchar(mperi));
  CkXml_UpdateChildContent(Xml, 'Cabecera|ObligadoTributario|NIF', pchar(TRIM(ts[1])));
  CkXml_UpdateChildContent(Xml, 'Cabecera|ObligadoTributario|ApellidosNombreRazonSocial', pchar(TRIM(ts[2])));
  if mmodelo = '140' then
  begin
    CkXml_UpdateChildContent(Xml, 'Ingresos|Ingreso|TicketBai', CkStringBuilder__getEncoded(sb1, 'base64', 'utf-8'));
    CkXml_UpdateChildContent(Xml, 'Ingresos|Ingreso|Renta|DetalleRenta|Epigrafe', '197330');
    CkXml_UpdateChildContent(Xml, 'Ingresos|Ingreso[1]|TicketBai', CkStringBuilder__getEncoded(sb2, 'base64', 'utf-8'));
    CkXml_UpdateChildContent(Xml, 'Ingresos|Ingreso[1]|Renta|DetalleRenta|Epigrafe', '197330');
    CkXml_UpdateChildContent(Xml, 'Ingresos|Ingreso[1]|Renta|DetalleRenta|IngresoAComputarIRPFDiferenteBaseImpoIVA', 'S');
    CkXml_UpdateChildContent(Xml, 'Ingresos|Ingreso[1]|Renta|DetalleRenta|ImporteIngresoIRPF', '400.00');
  end
  else
  begin
    // CkXml_UpdateChildContent(Xml, 'FacturasEmitidas|FacturaEmitida|TicketBai', CkStringBuilder__getEncoded(sb1, 'base64', 'utf-8'));
    // CkXml_UpdateChildContent(Xml, 'FacturasEmitidas|FacturaEmitida|Renta|DetalleRenta|Epigrafe', '197330');
    sb1 := CkStringBuilder_Create();
    tspen := TStringlist.Create;
    tspen.loadfromfile(ExtractFilepath(paramstr(0)) + 'pendiente.TXT');
    for mcon := 1 TO tspen.Count DO
    BEGIN
      success := CkStringBuilder_LoadFile(sb1, pchar(tspen[mcon - 1]), 'utf-8');
      CkXml_UpdateChildContent(Xml, pchar('FacturasEmitidas|FacturaEmitida[' + IntToStr(mcon) + ']|TicketBai'),
        CkStringBuilder__getEncoded(sb1, 'base64', 'utf-8'));
      // CkXml_UpdateChildContent(Xml, 'FacturasEmitidas|FacturaEmitida['+inttostr(mcon)+']|Renta|DetalleRenta|Epigrafe', '197330');
      // CkXml_UpdateChildContent(Xml, 'FacturasEmitidas|FacturaEmitida['+inttostr(mcon)+']|Renta|DetalleRenta|IngresoAComputarIRPFDiferenteBaseImpoIVA', 'S');
      // CkXml_UpdateChildContent(Xml, 'FacturasEmitidas|FacturaEmitida['+inttostr(mcon)+']|Renta|DetalleRenta|ImporteIngresoIRPF', '400.00');
    END;
  end;

  // Memo1.Lines.Add(CkXml__getXml(xml));

  success := CkXml_SaveXml(Xml, pchar(ExtractFilepath(paramstr(0)) + 'ticketBAI_invoice.xml'));

  CkStringBuilder_Dispose(sb1);
  CkStringBuilder_Dispose(sb2);
  CkXml_Dispose(Xml);

  Http := CkHttp_Create();

  success := CkHttp_SetSslClientCertPfx(Http, pchar(ExtractFilepath(paramstr(0)) + tsconf[0]), pchar(tsconf[1]));
  if (success = FALSE) then
  begin
    Memo1.Lines.Add(CkHttp__lastErrorText(Http));
    Memo1.Lines.SaveToFile(ExtractFilepath(paramstr(0)) + 'LOG.TXT');
    Exit;
  end;

  sbXml := CkStringBuilder_Create();
  success := CkStringBuilder_LoadFile(sbXml, pchar(ExtractFilepath(paramstr(0)) + 'ticketBAI_invoice.xml'), 'utf-8');

  if (success = FALSE) then
  begin
    Memo1.Lines.Add('Failed to load XML that is to be the HTTP request body');
    Memo1.Lines.SaveToFile(ExtractFilepath(paramstr(0)) + 'LOG.TXT');
    Exit;
  end;

  json := CkJsonObject_Create();

  // Add required headers...
  CkJsonObject_UpdateString(json, 'con', 'LROE');
  CkJsonObject_UpdateString(json, 'apa', '1.1');
  CkJsonObject_UpdateString(json, 'inte.nif', pchar(TRIM(ts[1])));
  CkJsonObject_UpdateString(json, 'inte.nrs', pchar(TRIM(ts[2])));
  CkJsonObject_UpdateString(json, 'drs.mode', pchar(mmodelo));
  CkJsonObject_UpdateString(json, 'drs.ejer', pchar(mperi));

  CkHttp_SetRequestHeader(Http, 'eus-bizkaia-n3-version', '1.0');
  CkHttp_SetRequestHeader(Http, 'eus-bizkaia-n3-content-type', 'application/xml');
  CkHttp_SetRequestHeader(Http, 'eus-bizkaia-n3-data', CkJsonObject__emit(json));
  // url := 'https://pruesarrerak.bizkaia.eus/N3B4000M/aurkezpena';
  bGzip := True;
  resp := CkHttp_PTextSb(Http, 'POST', pchar(mURLAlta), sbXml, 'utf-8', 'application/octet-stream', FALSE, bGzip);
  if (CkHttp_getLastMethodSuccess(Http) = FALSE) then
  begin
    Memo1.Lines.Add(CkHttp__lastErrorText(Http));
    Memo1.Lines.SaveToFile(ExtractFilepath(paramstr(0)) + 'LOG.TXT');
    Exit;
  end;
  CkHttp_ClearHeaders(Http);

  Memo1.Lines.Add('response status code: ' + IntToStr(CkHttpResponse_getStatusCode(resp)));

  // Examine the response (it is already decompressed)
  Memo1.Lines.Add('RESP.BODY:' + CHR(13) + CHR(10) + CkHttpResponse__bodyStr(resp));
  Memo1.Lines.Add('RESP.HEADER:' + CHR(13) + CHR(10) + CkHttpResponse__header(resp));

  Memo1.Lines.SaveToFile(ExtractFilepath(paramstr(0)) + 'LOG.TXT');
//lo siguente funciona pero obtenemos el mismo error
{  comprimir(ExtractFilepath(paramstr(0)) + 'ticketBAI_invoice.xml', 'archivo.gz');
  // RequestBody := TFileStream.Create('archivo.gz', fmOpenRead);
  NetHTTPClient1.SecureProtocols := [THTTPSecureProtocol.TLS12];
  NetHTTPClient1.CustomHeaders['Accept-Encoding'] := 'gzip';
  NetHTTPClient1.CustomHeaders['Content-Encoding'] := 'gzip';
  NetHTTPClient1.CustomHeaders['Content-Type'] := 'application/octet-stream';
  NetHTTPClient1.CustomHeaders['eus-bizkaia-n3-version'] := '1.0';
  NetHTTPClient1.CustomHeaders['eus-bizkaia-n3-content-type'] := 'application/xml';
  s := TStringlist.Create;
  m := tmemorystream.Create;
  // Formamos los parametros json de entrada
  NetHTTPClient1.CustomHeaders['eus-bizkaia-n3-data'] := CkJsonObject__emit(json);
  // AResponse := NetHTTPClient1.post( mURLAlta, RequestBody);
  AResponse := NetHTTPClient1.post(mURLAlta, 'archivo.gz', m);
  m.Position := 0;
  s.LoadFromStream(m);
  Memo1.Lines.AddStrings(s);
  Comprimido := TFileStream.Create('respuesta.gz', fmCreate);
  Comprimido.CopyFrom(AResponse.ContentStream, AResponse.ContentStream.Size);
  Comprimido.Destroy;
  descomprimir('respuesta.gz', 'respuesta2.gz');
  descomprimir('respuesta2.gz', 'respuesta.xml');}
  CkHttpResponse_Dispose(resp);
  CkHttp_Dispose(Http);
  CkStringBuilder_Dispose(sbXml);
  CkJsonObject_Dispose(json);

end;

sEngine 24-01-2022 18:54:01

Estas en modo pruebas o real? Si es el modo pruebas, estas usando el certificado que nos proporcionan y te has registrado?

skatologiko 24-01-2022 21:39:33

Yo estoy probando transmitir a Vizcaya con el siguiente comando curl y me da el mismo error, tanto en el entorno real como en el de pruebas, tanto con mi certificado en .pfx (que sí que funciona en Álava y Guipúzcoa) ,como con los que colgaron de prueba en la web de Batuz (que están en p12)

Este es el comando:
curl -H "Accept-Encoding: gzip" -H "Content-Encoding: gzip" -H "Content-Type: application/octet-stream" -H "eus-bizkaia-n3-version: 1.0" -H "eus-bizkaia-n3-content-type: application/xml" -H "eus-bizkaia-n3-data: {\"con\": \"LROE\",\"apa\": \"1.1\",\"inte\": {\"nif\": \"MINIF\",\"nrs\": \"MIEMPRESA\"},\"drs\": {\"mode\": \"240\",\"ejer\": \"2021\"}}" --data-binary @z:\MP220001resumen.xml.gz --cert Z:\ticketbai\certificados\EntitateOrdezkaria_RepresentanteDeEntidad.p12 --key IZDesa2021 -v https://pruesarrerak.bizkaia.eus/N3B4000M/aurkezpena --output z:\RESP_240.gz -D cabecera.txt

Y este el error:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0*
Trying 80.245.2.232...
* TCP_NODELAY set
* Connected to pruesarrerak.bizkaia.eus (80.245.2.232) port 443 (#0)
* could not load PEM client certificate, OpenSSL error error:0906D06C:PEM routin
es:PEM_read_bio:no start line, (no key found, wrong pass phrase, or wrong file f
ormat?)
* Curl_http_done: called premature == 0
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
* Closing connection 0
curl: (58) could not load PEM client certificate, OpenSSL error error:0906D06C:P
EM routines:PEM_read_bio:no start line, (no key found, wrong pass phrase, or wro
ng file format?)


¿Qué estoy haciendo mal?

elguille 25-01-2022 07:26:15

Cita:

Empezado por sEngine (Mensaje 545034)
Estas en modo pruebas o real? Si es el modo pruebas, estas usando el certificado que nos proporcionan y te has registrado?

En modo pruebas, empleando el certificado de empresa nuestro real que si funciona en Guipuzcoa y Alava y uno de un cliente final, en los dos obtengo el error

eus-bizkaia-n3-mensaje-respuesta: El interesado no está identificado.
eus-bizkaia-n3-codigo-respuesta: N3_0000002

Mi empresa esta registrada como software garante pero no nos han proporcionado ningun certificado de pruebas ¿donde se solicita o puedo verificar que pueda emplear el certificado? ¿en el servicio de pruebas no se pueden emplear certificados reales?

Gracias.

scsjcm 25-01-2022 09:41:16

Necesito alguien que le interese integrar TicketBai en un ERP
 
Hola a todos :) estoy en proceso de iniciar el tema del ticketbai a mi ERP, y me gustaria contactar con alguien que lo tenga avanzado y que podamos llegar a un acuerdo económico para que me pueda "acelerar" la integración del ticketbai en mi ERP.

Muchas gracias
Saludos a todos :)

batuzail 25-01-2022 10:40:59

Hola,
Revisa la doumentación del entorno de pruebas, tendrás que usar un certificado de prueba de izenpe y darte de alta, te daran un juego de datos.


Cita:

Empezado por elguille (Mensaje 545039)
En modo pruebas, empleando el certificado de empresa nuestro real que si funciona en Guipuzcoa y Alava y uno de un cliente final, en los dos obtengo el error

eus-bizkaia-n3-mensaje-respuesta: El interesado no está identificado.
eus-bizkaia-n3-codigo-respuesta: N3_0000002

Mi empresa esta registrada como software garante pero no nos han proporcionado ningun certificado de pruebas ¿donde se solicita o puedo verificar que pueda emplear el certificado? ¿en el servicio de pruebas no se pueden emplear certificados reales?

Gracias.


sEngine 25-01-2022 11:12:15

Email recibido ahora mismo de alava

Por motivos técnicos, mañana Miércoles 26 de Enero desde las 07:30 de la mañana el entorno de pruebas de TicketBai Álava no estará disponible. En el momento en que vuelva a estar disponible le informaremos por este mismo medio.

tejano 25-01-2022 12:04:04

Cita:

Empezado por skatologiko (Mensaje 545036)
Yo estoy probando transmitir a Vizcaya con el siguiente comando curl y me da el mismo error, tanto en el entorno real como en el de pruebas, tanto con mi certificado en .pfx (que sí que funciona en Álava y Guipúzcoa) ,como con los que colgaron de prueba en la web de Batuz (que están en p12)

Este es el comando:
curl -H "Accept-Encoding: gzip" -H "Content-Encoding: gzip" -H "Content-Type: application/octet-stream" -H "eus-bizkaia-n3-version: 1.0" -H "eus-bizkaia-n3-content-type: application/xml" -H "eus-bizkaia-n3-data: {\"con\": \"LROE\",\"apa\": \"1.1\",\"inte\": {\"nif\": \"MINIF\",\"nrs\": \"MIEMPRESA\"},\"drs\": {\"mode\": \"240\",\"ejer\": \"2021\"}}" --data-binary @z:\MP220001resumen.xml.gz --cert Z:\ticketbai\certificados\EntitateOrdezkaria_RepresentanteDeEntidad.p12 --key IZDesa2021 -v https://pruesarrerak.bizkaia.eus/N3B4000M/aurkezpena --output z:\RESP_240.gz -D cabecera.txt

Y este el error:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0*
Trying 80.245.2.232...
* TCP_NODELAY set
* Connected to pruesarrerak.bizkaia.eus (80.245.2.232) port 443 (#0)
* could not load PEM client certificate, OpenSSL error error:0906D06C:PEM routin
es:PEM_read_bio:no start line, (no key found, wrong pass phrase, or wrong file f
ormat?)
* Curl_http_done: called premature == 0
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
* Closing connection 0
curl: (58) could not load PEM client certificate, OpenSSL error error:0906D06C:P
EM routines:PEM_read_bio:no start line, (no key found, wrong pass phrase, or wro
ng file format?)


¿Qué estoy haciendo mal?

Yo lo genero de esta forma y va bien
c:\curl\bin\curl --insecure --cert-type P12 --cert c:\temp\CERTIFICADO.p12:Passwd_certificado -H "Accept-Encoding:gzip" -H "Content-Encoding:gzip" -H "Content-Type:application/octet-stream" -H "eus-bizkaia-n3-version:1.0" -H "eus-bizkaia-n3-content-type:application/xml" -H "eus-bizkaia-n3-data:{\"con\":\"LROE\",\"apa\":\"1.1\",\"inte\":{\"nif\":\"CIF_EMPRESA\",\"nrs\":\"NOMBRE_EMPRESA\"} ,\"drs\":{\"mode\":\"240\",\"ejer\":\"2022\"}}" -v "https://sarrerak.bizkaia.eus/N3B4000M/aurkezpena" --data-binary "@RUTA_FICHERO_GZ.GZ" --output c:\temp\respuesta.gz -D c:\tmp\cabecera.txt

elguille 25-01-2022 12:27:37

Cita:

Empezado por batuzail (Mensaje 545041)
Hola,
Revisa la doumentación del entorno de pruebas, tendrás que usar un certificado de prueba de izenpe y darte de alta, te daran un juego de datos.

He usado el certificado de representante "EntitateOrdezkaria_RepresentanteDeEntidad.p12" y el certificado de empresa "EnpresaZigilua_SelloDeEmpresa.p12" contenidos en https://www.batuz.eus/fitxategiak/ba...ados_V1_0_0.7z y en ambos obtenido el mismo error en entorno pruebas:mad:, desesperado y leyendo que en 2021 el LROE no tiene trascendencia tributaria https://www.batuz.eus/es/novedades, se me ha ocurrido enviar una factura de 2021 a produccion con el certificado del cliente final, sin cambiar el codigo solo la url del servicio, y MILAGRO no he tenido ningun problema (factura enviada correctamente):eek:, pero claro necesito poder hacer pruebas para comprobar que todo funciona correctamente.

Asimismo en la documentacion del entorno de pruebas https://www.batuz.eus/fitxategiak/ba...ea4c600c4b0bca pone

3.3 Uso de certificados
Los certificados a utilizar en el entorno de pruebas serán los de Producción.
Se admitirán los siguientes certificados:
▪ Certificado de persona física.
▪ Certificado de representante de entidad.
▪ Sello de empresa/entidad.
▪ Sello de autónomo.
▪ Certificado de dispositivo.

por lo que entiendo que no deberia de tener ningun problema en emplear el entorno de pruebas si el certificado en produccion va correctamente. ¿se le ocurre a alguien en donde me equivoco? o como intentar mas pruebas...

Muchas gracias
Saludos a todos

keys 25-01-2022 12:32:57

Cita:

Empezado por elguille (Mensaje 545046)
He usado el certificado de representante "EntitateOrdezkaria_RepresentanteDeEntidad.p12" y el certificado de empresa "EnpresaZigilua_SelloDeEmpresa.p12" contenidos en https://www.batuz.eus/fitxategiak/ba...ados_V1_0_0.7z y en ambos obtenido el mismo error en entorno pruebas:mad:, desesperado y leyendo que en 2021 el LROE no tiene trascendencia tributaria https://www.batuz.eus/es/novedades, se me ha ocurrido enviar una factura de 2021 a produccion con el certificado del cliente final, sin cambiar el codigo solo la url del servicio, y MILAGRO no he tenido ningun problema (factura enviada correctamente):eek:, pero claro necesito poder hacer pruebas para comprobar que todo funciona correctamente.

Asimismo en la documentacion del entorno de pruebas https://www.batuz.eus/fitxategiak/ba...ea4c600c4b0bca pone

3.3 Uso de certificados
Los certificados a utilizar en el entorno de pruebas serán los de Producción.
Se admitirán los siguientes certificados:
▪ Certificado de persona física.
▪ Certificado de representante de entidad.
▪ Sello de empresa/entidad.
▪ Sello de autónomo.
▪ Certificado de dispositivo.

por lo que entiendo que no deberia de tener ningun problema en emplear el entorno de pruebas si el certificado en produccion va correctamente. ¿se le ocurre a alguien en donde me equivoco? o como intentar mas pruebas...

Muchas gracias
Saludos a todos

A la empresa de pruebas tienes que ponerle el cif y el nombre que ellos te dicen al darte de alta en el entorno de pruebas

Neftali [Germán.Estévez] 25-01-2022 12:49:39

Aviso para mañana:

Cita:

Nos dirigimos a usted como participante del período de pruebas del sistema TicketBai en Álava para informarle de lo siguiente:

Por motivos técnicos, mañana Miércoles 26 de Enero desde las 07:30 de la mañana el entorno de pruebas de TicketBai Álava no estará disponible. En el momento en que vuelva a estar disponible le informaremos por este mismo medio.

elguille 25-01-2022 13:12:18

Cita:

Empezado por keys (Mensaje 545047)
A la empresa de pruebas tienes que ponerle el cif y el nombre que ellos te dicen al darte de alta en el entorno de pruebas

Gracias keys y a todos, ya lo he solicitado, habia obviado este paso pensando que con los certificados finales no importaba. Menudo patinazo:(.

ermendalenda 25-01-2022 17:32:12

Hola Sistel o algún forero con experiencia en rawsberry.
Estoy montando algunos servidores de firmas en rawsberry, pero ya lo aprovecho para quitar otros servidores Linux con samba y otras aplicaciones.
El caso es que cada 1 que monto se me van unas cuantas horas.
Por favor me podéis decir si conocéis algún método para clonar las tarjetas de estos dispositivos?

misteradrian 25-01-2022 18:17:23

Cita:

Empezado por espinete (Mensaje 545012)
Hola.

Sigo liado con las facturas rectificativas, y leer lo que dice la Agencia Tributaria en su web no es que me aclare todas las dudas, la verdad:
://sede.agenciatributaria.gob.es/Sede/impuestos-tasas/iva/iva-libros-registro-iva-traves-aeat/preguntas-frecuentes/2-registro-cuestiones-comunes.html?faqId=f28c6c3d02bc9510VgnVCM100000dc381e0aRCRD

Según entiendo, y a modo de resumen, pueden ser de dos tipos, “por sustitución” y “por diferencias”, a elegir por el usuario:

1. Factura rectificativa “por sustitución”: Hay dos formas de hacerlo:
1.A: Creando una sola factura en la que se indiquen los importes correctos (base imponible, cuota y en su caso recargo) y los importes rectificados, respecto de la factura original.
- Emitimos una nueva factura, en otra Serie, con el importe/datos correctos
- Codigo de Rectificativa: "Rx", Tipo "S"
- Se deben rellenar los campos BaseRectificada, CuotaRectificada y CuotaRecargoRectificada
- Se debe indicar a qué factura rectifica: FacturasRectificadasSustituidas.NumFactura, FacturasRectificadasSustituidas.SerieFactura, etc.
1.B: Creando dos facturas
- Emitimos primero una factura ordinaria en negativo (Tipo "F1"), para "anular" la incorrecta. En ningún momento se indica que esta factura sea Rectificativa (Tipo "Rx", ni "S" ni "I" ni nada)
- Emitimos otra factura, esta sí se debe indicar como Rx y tipo "S"
- En esta segunda factura, los campos BaseRectificada, CuotaRectificada y CuotaRecargoRectificada van a 0 (o no se indican)
- En esta segunda factura se debe indicar también a qué factura rectifica: FacturasRectificadasSustituidas.NumFactura, FacturasRectificadasSustituidas.SerieFactura, etc.

2. Factura rectificativa "por diferencias": A simple vista, parece más fácil de entender y realizar.
Según la AEAT, se deberá informar directamente del importe de la rectificación en una sola factura rectificativa y no se debe informar de los campos “base rectificada”, “cuota rectificada”, etc.
Consiste simplemente en emitir una nueva factura con "la diferencia" que haya con respecto a la original.
- Código "Rx", Tipo "I"
- NO se requiere indicar nada en BaseRectificada, CuotaRectificada y CuotaRecargoRectificada
- Se debe indicar a qué factura rectifica: FacturasRectificadasSustituidas.NumFactura, FacturasRectificadasSustituidas.SerieFactura, etc.

Dicho esto, me surgen varias preguntas...

¿Por qué alguien haría una "por susticución" del tipo B, que requiere hacer dos facturas, en lugar de cualquier otro tipo que requiere hacer solo una? ¿Hay algún caso concreto que te obligue a usar esa opción?
¿La opción 1.A no sería lo mismo que la 2, salvo por tener que indicar BaseRectificada, CuotaRectificada, etc.?
En la opción 1.B... esa primera factura en negativo, de la que tanto hemos hablado en el foro (si es del todo "legal" o no)... ¿en qué quedamos? Nos dicen que lo correcto es hacer siempre rectificativas pero en este ejemplo dicen que podemos hacer una en negativo primero y luego una rectificativa?
Esa factura en negativo, que lo que hace es "anular" la original (para que la suma entre ambas sea cero), no la catalogan como "rectificativa", así que debe ir en la misma serie de facturación que la original. De hecho no es de Código "Rx".

Creo que mi cabeza en realidad se está poniendo en la mente del usuario final en vez de en la mía como desarrollador. Debería simplemente seguir las normas, preparar la aplicación para que las cumpla, y dejarme de hacerme preguntas fiscales :confused:

Pues eso... ¿alguien puede confirmarme si esto es correcto? ¿cómo hacéis vosotros las rectificativas, permitís al usuario final elegir entre las tres opciones u obligáis a hacerlo de una forma específica y punto?

¡Hola!

Yo la verdad que estoy un poco igual que tú.
Para terminar este paso en el sistema estoy leyendo más documentación que otra cosa y me estoy enterando de más bien poco.
¿No tienen documentos relacionados con esto de las rectificativas en las haciendas forales?

Un saludo,
Adrián

Sistel 25-01-2022 20:29:33

Cita:

Empezado por ermendalenda (Mensaje 545052)
Hola Sistel o algún forero con experiencia en rawsberry.
Estoy montando algunos servidores de firmas en rawsberry, pero ya lo aprovecho para quitar otros servidores Linux con samba y otras aplicaciones.
El caso es que cada 1 que monto se me van unas cuantas horas.
Por favor me podéis decir si conocéis algún método para clonar las tarjetas de estos dispositivos?

Hola ermendalenda,

Puedes guardar una imagen de una tarjeta microSD (de las utilizadas en las Raspberry Pi) con el comando "dd" de Linux.
Sacas la tarjeta de la Raspberry (tras apagarla), la metes en un PC con Linux y usas el comando "dd"
(https://man7.org/linux/man-pages/man1/dd.1.html)
Ejemplo:
Código:

dd if=/dev/sdx of=imagen.img bs=4M
(Si utilizas el parámetro "bs", vas más rápido, ya que lees y escribes bloques del tamaño que especifiques).

Para hacer copias múltiples, es muy cómoda, rápida y segura la aplicación balenaEtcher (https://www.balena.io/etcher)
No necesitas ni instalarla. La dejas en el escritorio, por ejemplo, y la ejecutas desde él.
Te permite grabar tarjetas microSD de forma rápida y segura.

Saludos

unomasmas 25-01-2022 20:30:08

Seguro que ya está aclarado pero es que voy leyendo los mensajes de varios días que llevo sin revisar el foro... Por si no fuese así, por si no se hubiese resuelto este asunto...
Cita:

Empezado por espinete (Mensaje 544968)
Hola de nuevo...

Me he encontrado por primera vez con un problema al enviar una factura que tenía artículos con varios IVAs y uno de ellos con IVA = 0.
Si tengo varios IVAs distintos no hay problema, pero si hay una línea con IVA = 0 (es decir, uno con IVA 21% y otro con IVA 0%), la factura se envía pero con avisos:

Codigo 1219: El campo TipoImpositivo debe estar informado con valor distinto de 0 si el campo TipoNoExenta tiene un valor S1 y ClaveRegimenIVAOpTrascendencia o ClaveRegimenIVAOpTrascendencia adicional con valor distinto a 03 05 09

Supongo que se debe a que en DesgloseIVA estoy añadiendo también el IVA 0 y no debería. ¿Es correcto?
O si se añade, me falta algo por indicar que no encuentro.

Lo que está claro es que no es que la factura esté exenta o no sujeta (no es a nivel de factura, sino de línea), así que supongo que con no añadir ese IVA 0 al DesgloseIVA sería suficiente...

En una factura pueden ir conceptos exentos, no exentos, no sujetos y con inversión del sujeto pasivo. Si el tipo de IVA es cero, ese concepto debe figurar como exento, no sujeto o con el valor S2 para la etiqueta TipoNoExenta.
Cita:

Empezado por espinete (Mensaje 544968)
Luego obtengo este otro que no tiene nada que ver pero me cabrea bastante, la verdad:

Codigo 5031: Se debe informar el campo CodigoPostal cuando FacturaSimplificada sea N o no esté informada o cuando el campo FacturaEmitidaSustituciónSimplificada sea S, o cuando el Código de FacturaRectificativa no sea R5

¿En serio vamos a estar con esas tonterías?

Ojo, la factura se envía y puede comprobarse con el QR, pero a saber si dentro de X meses deja de funcionar.

Esto es lo que es. Con facturas "normales" hay que indicar el código postal :-)

ermendalenda 25-01-2022 20:43:20

Cita:

Empezado por Sistel (Mensaje 545055)
Hola ermendalenda,

Puedes guardar una imagen de una tarjeta microSD (de las utilizadas en las Raspberry Pi) con el comando "dd" de Linux.
Sacas la tarjeta de la Raspberry (tras apagarla), la metes en un PC con Linux y usas el comando "dd"
(https://man7.org/linux/man-pages/man1/dd.1.html)
Ejemplo:
Código:

dd if=/dev/sdx of=imagen.img bs=4M
(Si utilizas el parámetro "bs", vas más rápido, ya que lees y escribes bloques del tamaño que especifiques).

Para hacer copias múltiples, es muy cómoda, rápida y segura la aplicación balenaEtcher (https://www.balena.io/etcher)
No necesitas ni instalarla. La dejas en el escritorio, por ejemplo, y la ejecutas desde él.
Te permite grabar tarjetas microSD de forma rápida y segura.

Saludos

Gracias sistel
Voy a intentarlo.


La franja horaria es GMT +2. Ahora son las 15:36:18.

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