Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Ley antifraude 2021 (VERIFACTU) - Programas informáticos (https://www.clubdelphi.com/foros/showthread.php?t=95235)

navbuoy 18-10-2024 19:09:58

no pasa nada Jguarda, "solo" han sido 148 paginas de foro, si hubiesen sido 5.000 puess... :D

PD.- Decidles que si nos contratan a mi y a Neftali por un muy buen sueldo de 10.000 euros al mes (cada uno) solucionaremos esos fallos tontos. Les arruinaremos si, pero los fallos los solucionaremos fijo.

PD2.- en cuanto tengamos acceso al codigo y un lapiz USB de buena marca (no de los chinos que esos fallan mucho) les robaremos el codigo fuente y en unos meses sacaremos el NeftaNavFactu claro.... que tampoco nacimos ayer, aunque por lo que veo debe estar plagado de fallos ese codigo y en plan "spaguetti" total pero bueno, quien sabe..... no sonrias Neftali... hablo muy en serio.

sglorka 18-10-2024 19:16:18

Cita:

Empezado por ermendalenda (Mensaje 558384)
Reabro polémica de facturas sustitutivas.
En post anteriores alguien ha puesto que para emitir una factura sobre un tiquet emitía un tiquet negativo y después volvía a hacer la factura.
Pues se me acaba de dar el caso de que un cliente a solicitado una factura de tiquets que tenían el 0% de Iva del mes de mayo, si hiciera el negativo, el SII rechaza tiquets y facturas con el 0% para este tipo de venta. Y peor aun, si lo hago así tendría que pagar el iva que antes estaba exento, y a quien se lo repercuto?
Nota: son productos que estaba al 0% y ahira están al 2% por cambio de normativa, y lo mismo con la pasta y legumbres que estaban al 5% y pasan al 7.5%

Tanto la factura simplificada que abona en negativo como la factura completa sustitutiva deben informarse con la fecha de operación de la factura simplificada que estás sustituyendo. En caso contario, es normal que si hay algún iva que ya no esté vigente te la rechace.

jlmoli_67 18-10-2024 19:22:31

Espera
 
Buenas,


Yo lo que he hecho desde un primer momento es dedicarme a readaptar mi programa a verifactu sin entrar en detalles de envios y de creacion del xml pero sin perder el hilo de los cambios que van haciendo asi como de aprender el como se realiza cada problematica. Cuando acaben de cambiar las cosas y ya sea casi definitivo entonces aplicare todo lo aprendido y las pruebas que voy haciendo de creacion y envio del xml y de esta forma no pierdo el tiempo (que supungo que como vosotros no me sobra) en parchear lo que voy haciendo una y otra vez. Os recuerdo que nos daran 9 meses a partir de la publicacion en el boe para adecuar los programas a la norma, tiempo que creo suficiente si se tienen las cosas claras para poder realizar dicha tarea.



un saludo, amigos

bmfranky 18-10-2024 19:58:37

Cita:

Empezado por bmfranky (Mensaje 558389)
Hola, alguien que envie por http , sin usar sus funciones, puede pasa lo que responde en crudo el servico ahora, por verificar que ya estan incluyendo las nuevas etiquetas?

Me respondo a mi mismo, estan contestando con la nueva etiqueta vacia, pero no han tenido en cuenta que pueda estar vacia entonces al parsear vacio, da error.
Cita:

<tik:NumSerieFactura>VC1-24-100006</tik:NumSerieFactura>
<tik:FechaExpedicionFactura>18/10/2024</tik:FechaExpedicionFactura>
</tikR:IDFactura>
<tikR:Operacion>
<tik:TipoOperacion/> <<<---- deveria devolver el valor de la operacion , pero esta vacio.
</tikR:Operacion>
<tikR:EstadoRegistro>Correcto</tikR:EstadoRegistro>



[email protected] 18-10-2024 21:32:44

Cita:

Empezado por ermendalenda (Mensaje 558377)
o es cambiar el tipo impositivo 21 por 21.00
o es que te faltan las referencias en los nodos ="https://www2.agenciatributaria.gob.e...nformacion.xsd"

Antes de nada, GRACIAS a todos los que me han dedicado algo de su tiempo en aclarar las dudas/problemas

El problema lo tenia en el formato y la referencia de los nodos, pensaba que al defirnir la url al principio servia para todo el XML., pero veo que hay que definirlas en cada grupo

He llegado hasta el ultimo campo : HUELLA donde me indica VALOR O TIPO INCORRECTO DE CAMPO. El formato y valores del mismo es :

<Huella xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">8C4F00D6E814A06990BDA2F30CA26CE3
9D8C043767CFA0BD293436238793067A</Huella>

Yo creo que esta bien formado, pero me da error.

Si teneis un hueco y podeis mirarlo y decirme donde esta el problma, os lo agradecere

Un saludo

ermendalenda 18-10-2024 23:30:36

Cita:

Empezado por [email protected] (Mensaje 558395)
Antes de nada, GRACIAS a todos los que me han dedicado algo de su tiempo en aclarar las dudas/problemas

El problema lo tenia en el formato y la referencia de los nodos, pensaba que al defirnir la url al principio servia para todo el XML., pero veo que hay que definirlas en cada grupo

He llegado hasta el ultimo campo : HUELLA donde me indica VALOR O TIPO INCORRECTO DE CAMPO. El formato y valores del mismo es :

<Huella xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">8C4F00D6E814A06990BDA2F30CA26CE3
9D8C043767CFA0BD293436238793067A</Huella>

Yo creo que esta bien formado, pero me da error.

Si teneis un hueco y podeis mirarlo y decirme donde esta el problma, os lo agradecere

Un saludo


Bueno, el espacio de nombre xmlns está correctamente definido y aunque no es la forma más indicada para esta estructura de ficheros sí deberia funcionar si el resto del xml está correctamente estructurado y con sus espacios de nombres en cada nodo. Habría que revisar el xml xompleto, a ojo se puede más o menos revisar si lo pusieras completo.

Nota:
es mejor crear etiquetas/prefijos de los espacios de nombres para no tener que reescribir en cada nodo el espacio de nombres del xsd y referenciando con el prefijo ahorras espacio y mejoras la visibilidad del xml.

[email protected] 18-10-2024 23:34:03

Cita:

Empezado por ermendalenda (Mensaje 558396)
Bueno, el espacio de nombre xmlns está correctamente definido y aunque no es la forma más indicada para esta estructura de ficheros sí deberia funcionar si el resto del xml está correctamente estructurado y con sus espacios de nombres en cada nodo. Habría que revisar el xml xompleto, a ojo se puede más o menos revisar si lo pusieras completo.

Nota:
es mejor crear etiquetas/prefijos de los espacios de nombres para no tener que reescribir en cada nodo el espacio de nombres del xsd y referenciando con el prefijo ahorras espacio y mejoras la visibilidad del xml.


Puedes ampliar un poco la informacion que comentas crear etiquetas/prefijos de los espacios de nombres ???

Podria adjuntar el xml completo, pero me sabe mal por el resto de componente del club

Puedo hacertelo llegar por otro lado

Gracias

ermendalenda 19-10-2024 10:05:28

Cita:

Empezado por [email protected] (Mensaje 558397)
Puedes ampliar un poco la informacion que comentas crear etiquetas/prefijos de los espacios de nombres ???

Podria adjuntar el xml completo, pero me sabe mal por el resto de componente del club

Puedo hacertelo llegar por otro lado

Gracias

Hola
Te dejo una prueba de Factura simplificada (Creo que está a la última versión, no he podido comprobar si ha habido modificaciones, estoy un pelin liado estas ultimas semanas)

Código PHP:

<?xml version="1.0" encoding="UTF-8"?>
<sum:RegFactuSistemaFacturacion xmlns:sum="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd" xmlns:sum1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<sum1:Cabecera>
<sum1:ObligadoEmision>
<sum1:NombreRazon>PRUEBAS CIF AEAT</sum1:NombreRazon>
<sum1:NIF>Q2826000H</sum1:NIF>
</sum1:ObligadoEmision>
</sum1:Cabecera>
<sum:RegistroFactura><sum:RegistroAlta><sum1:IDVersion>1.0</sum1:IDVersion><sum1:IDFactura><sum1:IDEmisorFactura>Q2826000H</sum1:IDEmisorFactura><sum1:NumSerieFactura>2-25.1.1</sum1:NumSerieFactura><sum1:FechaExpedicionFactura>19-10-2024</sum1:FechaExpedicionFactura></sum1:IDFactura><sum1:NombreRazonEmisor>PRUEBAS CIF AEAT</sum1:NombreRazonEmisor><sum1:TipoFactura>F2</sum1:TipoFactura><sum1:DescripcionOperacion>Factura Simplificada</sum1:DescripcionOperacion><sum1:Desglose><sum1:DetalleDesglose><sum1:ClaveRegimen>01</sum1:ClaveRegimen><sum1:CalificacionOperacion>N1</sum1:CalificacionOperacion><sum1:OperacionExenta>E6</sum1:OperacionExenta><sum1:BaseImponibleOimporteNoSujeto>0.95</sum1:BaseImponibleOimporteNoSujeto></sum1:DetalleDesglose><sum1:DetalleDesglose><sum1:ClaveRegimen>01</sum1:ClaveRegimen><sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion><sum1:TipoImpositivo>10.00</sum1:TipoImpositivo><sum1:BaseImponibleOimporteNoSujeto>7.27</sum1:BaseImponibleOimporteNoSujeto><sum1:CuotaRepercutida>0.73</sum1:CuotaRepercutida></sum1:DetalleDesglose></sum1:Desglose><sum1:CuotaTotal>0.73</sum1:CuotaTotal><sum1:ImporteTotal>8.95</sum1:ImporteTotal><sum1:Encadenamiento><sum1:RegistroAnterior><sum1:IDEmisorFactura>Q2826000H</sum1:IDEmisorFactura><sum1:NumSerieFactura>1-25.1.1</sum1:NumSerieFactura><sum1:FechaExpedicionFactura>19-10-2024</sum1:FechaExpedicionFactura><sum1:Huella>C0E0A0F622EFF0A77A41E47C13972AEAB8E05A85E81D6B873942238A1A670BC5</sum1:Huella></sum1:RegistroAnterior></sum1:Encadenamiento><sum1:SistemaInformatico><sum1:NombreRazon>SOFTWARE GARANTE PRUEBAS</sum1:NombreRazon><sum1:NIF>A99800005</sum1:NIF><sum1:NombreSistemaInformatico>VERIFACTU0000PRUEBA</sum1:NombreSistemaInformatico><sum1:IdSistemaInformatico>01</sum1:IdSistemaInformatico><sum1:Version>1.0.03</sum1:Version><sum1:NumeroInstalacion>Q2826000H NCentro:25 NTPV:1</sum1:NumeroInstalacion><sum1:TipoUsoPosibleSoloVerifactu>S</sum1:TipoUsoPosibleSoloVerifactu><sum1:TipoUsoPosibleMultiOT>N</sum1:TipoUsoPosibleMultiOT></sum1:SistemaInformatico><sum1:FechaHoraHusoGenRegistro>2024-10-19T10:01:06+02:00</sum1:FechaHoraHusoGenRegistro><sum1:TipoHuella>01</sum1:TipoHuella>
<sum1:Huella>DCEC3A26371CC7CC5E804E0AA066E77CB5CCD5ABFD45A8BB9810B6E88CD8BB03</sum1:Huella>
</sum:RegistroAlta>
</sum:RegistroFactura>
</sum:RegFactuSistemaFacturacion>

Perdona no haberte tabulado el xml, copialo a un notas y le metes los intros despues de cada cierre de nodo ">" para verlo mejor.
Si te fijas, en el segundo nodo se definen los prefijos/etiquetas para hacer referencia a los xsd y despues en cada nodo se pone simplemente la etiqueta que corresponda según el nodo, ya que cada nodo puede ser de un esquema(xsd) distinto, aqu'i defino 2 etiquetas "sum" y "sum1"
Claro, esto en lenguajes actuales, practicamente no hay ni que saberlo, ya que se define todo muy automático, pero entiendo que estás escribiendo a pelo los xmls.

[email protected] 19-10-2024 10:44:28

Cita:

Empezado por ermendalenda (Mensaje 558398)
Hola
Te dejo una prueba de Factura simplificada (Creo que está a la última versión, no he podido comprobar si ha habido modificaciones, estoy un pelin liado estas ultimas semanas)

Código PHP:

<?xml version="1.0" encoding="UTF-8"?>
<sum:RegFactuSistemaFacturacion xmlns:sum="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd" xmlns:sum1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<sum1:Cabecera>
<sum1:ObligadoEmision>
<sum1:NombreRazon>PRUEBAS CIF AEAT</sum1:NombreRazon>
<sum1:NIF>Q2826000H</sum1:NIF>
</sum1:ObligadoEmision>
</sum1:Cabecera>
<sum:RegistroFactura><sum:RegistroAlta><sum1:IDVersion>1.0</sum1:IDVersion><sum1:IDFactura><sum1:IDEmisorFactura>Q2826000H</sum1:IDEmisorFactura><sum1:NumSerieFactura>2-25.1.1</sum1:NumSerieFactura><sum1:FechaExpedicionFactura>19-10-2024</sum1:FechaExpedicionFactura></sum1:IDFactura><sum1:NombreRazonEmisor>PRUEBAS CIF AEAT</sum1:NombreRazonEmisor><sum1:TipoFactura>F2</sum1:TipoFactura><sum1:DescripcionOperacion>Factura Simplificada</sum1:DescripcionOperacion><sum1:Desglose><sum1:DetalleDesglose><sum1:ClaveRegimen>01</sum1:ClaveRegimen><sum1:CalificacionOperacion>N1</sum1:CalificacionOperacion><sum1:OperacionExenta>E6</sum1:OperacionExenta><sum1:BaseImponibleOimporteNoSujeto>0.95</sum1:BaseImponibleOimporteNoSujeto></sum1:DetalleDesglose><sum1:DetalleDesglose><sum1:ClaveRegimen>01</sum1:ClaveRegimen><sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion><sum1:TipoImpositivo>10.00</sum1:TipoImpositivo><sum1:BaseImponibleOimporteNoSujeto>7.27</sum1:BaseImponibleOimporteNoSujeto><sum1:CuotaRepercutida>0.73</sum1:CuotaRepercutida></sum1:DetalleDesglose></sum1:Desglose><sum1:CuotaTotal>0.73</sum1:CuotaTotal><sum1:ImporteTotal>8.95</sum1:ImporteTotal><sum1:Encadenamiento><sum1:RegistroAnterior><sum1:IDEmisorFactura>Q2826000H</sum1:IDEmisorFactura><sum1:NumSerieFactura>1-25.1.1</sum1:NumSerieFactura><sum1:FechaExpedicionFactura>19-10-2024</sum1:FechaExpedicionFactura><sum1:Huella>C0E0A0F622EFF0A77A41E47C13972AEAB8E05A85E81D6B873942238A1A670BC5</sum1:Huella></sum1:RegistroAnterior></sum1:Encadenamiento><sum1:SistemaInformatico><sum1:NombreRazon>SOFTWARE GARANTE PRUEBAS</sum1:NombreRazon><sum1:NIF>A99800005</sum1:NIF><sum1:NombreSistemaInformatico>VERIFACTU0000PRUEBA</sum1:NombreSistemaInformatico><sum1:IdSistemaInformatico>01</sum1:IdSistemaInformatico><sum1:Version>1.0.03</sum1:Version><sum1:NumeroInstalacion>Q2826000H NCentro:25 NTPV:1</sum1:NumeroInstalacion><sum1:TipoUsoPosibleSoloVerifactu>S</sum1:TipoUsoPosibleSoloVerifactu><sum1:TipoUsoPosibleMultiOT>N</sum1:TipoUsoPosibleMultiOT></sum1:SistemaInformatico><sum1:FechaHoraHusoGenRegistro>2024-10-19T10:01:06+02:00</sum1:FechaHoraHusoGenRegistro><sum1:TipoHuella>01</sum1:TipoHuella>
<sum1:Huella>DCEC3A26371CC7CC5E804E0AA066E77CB5CCD5ABFD45A8BB9810B6E88CD8BB03</sum1:Huella>
</sum:RegistroAlta>
</sum:RegistroFactura>
</sum:RegFactuSistemaFacturacion>

Perdona no haberte tabulado el xml, copialo a un notas y le metes los intros despues de cada cierre de nodo ">" para verlo mejor.
Si te fijas, en el segundo nodo se definen los prefijos/etiquetas para hacer referencia a los xsd y despues en cada nodo se pone simplemente la etiqueta que corresponda según el nodo, ya que cada nodo puede ser de un esquema(xsd) distinto, aqu'i defino 2 etiquetas "sum" y "sum1"
Claro, esto en lenguajes actuales, practicamente no hay ni que saberlo, ya que se define todo muy automático, pero entiendo que estás escribiendo a pelo los xmls.


Agradecido por tu tiempo. Tomo nota de los prefijos/etiquetas que me indicas y voy a cambiarlo. Tal como entiendes estoy montando a PELO los xmls.
He pasado una prueba con el xml que me aadjunta y aleluya HA FUNCIONADO e imagino que ha llegado a la AEAT por la respuesta que me indican de error. Te lo adjunto :

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Body><env:Fault><faultcode>env:Server</faultcode>
<faultstring>Codigo[20009].
UNSUCCESSFUL EXECUTION CAUSED BY AN UNAVAILABLE RESOURCE.
REASON 00C90081, TYPE OF RESOURCE 00000210,
AND RESOURCE NAME DBTCCSOR.TSTCCSOR.00000001.
SQLCODE=-904, SQLSTATE=57011,
DRIVER=4.33.43
</faultstring>
</env:Fault>
</env:Body>
</env:Envelope>



Donde puedo averiguar lo que significan estos errores y los pasos a seguir.

Gracias

Rodrigo

ermendalenda 19-10-2024 10:50:27

Cita:

Empezado por [email protected] (Mensaje 558399)
Agradecido por tu tiempo. Tomo nota de los prefijos/etiquetas que me indicas y voy a cambiarlo. Tal como entiendes estoy montando a PELO los xmls.
He pasado una prueba con el xml que me aadjunta y aleluya HA FUNCIONADO e imagino que ha llegado a la AEAT por la respuesta que me indican de error. Te lo adjunto :

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Body><env:Fault><faultcode>env:Server</faultcode>
<faultstring>Codigo[20009].
UNSUCCESSFUL EXECUTION CAUSED BY AN UNAVAILABLE RESOURCE.
REASON 00C90081, TYPE OF RESOURCE 00000210,
AND RESOURCE NAME DBTCCSOR.TSTCCSOR.00000001.
SQLCODE=-904, SQLSTATE=57011,
DRIVER=4.33.43
</faultstring>
</env:Fault>
</env:Body>
</env:Envelope>



Donde puedo averiguar lo que significan estos errores y los pasos a seguir.

Gracias

Rodrigo

Ni idea, aun no me he metido con los envíos, los compañeros seguro que te ayudan. Pero tienes que hener en cuenta que el xml no se manda tal cual. Tienes que empaquetarlo como soap, en eso no te puedo ayudar,.por que a pelo un soap es complicado (praxticamente i posible si nl conoces en profundidad coml funcionan las funciones de firmas etc), hay que firmados con hash etc.
Pero con autoafirma.exe si puedes investigar, aunque tun pelin complicado y no se si se ajustará a los tiempos que necesitas para las generaciones. La otra opción es que compras alguna función api/dll para estas cosas, hay un par de ellas que son adaptables a casi cualquier software de desarrollo antiguo

[email protected] 19-10-2024 11:03:52

Cita:

Empezado por ermendalenda (Mensaje 558400)
Ni idea, aun no me he metido con los envíos, los compañeros seguro que te ayudan. Pero tienes que hener en cuenta que el xml no se manda tal cual. Tienes que empaquetarlo como soap, en eso no te puedo ayudar,.por que a pelo un soap es complicado, hay que firmados con hash etc.

Yo estoy programando en WINDEV, y la parte del envio creo que la tengo clara, te comento como lo hago:

sURL is string = NoSpace(VERIFACTU_ENDPOINT)
sResult is string = ""
HTTPCertificate(sCertificadoSeleccionado)
IF HTTPRequest(sURL,"","",sRequest) = False THEN
Error("ERROR:"+CR+CR+ErrorInfo())
ELSE
sResult = HTTPGetResult(httpResult)
fSaveText(XTMP+"RESPUESTA ENVIO XML.TXT",sResult)
Info("OK HTTPREQUEST",sUbicacion,"",sResult)
END

Como ves, indico cual es el ENDPOINT :

VERIFACTU_ENDPOINT is string = "https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP"
sNombre_del_endpoint_es is string = "SistemaVerifactuPruebas"

adjunto el certificado a la peticion y realizo una peticion HTTPREQUEST a la url de hacienda y recibo la respuesta.

Esta forma de realizar la peticion la tengo implementada en el SII desde hace años y actualmente esta funcionando perfectamente.

Me reitero, gracias por dedicarme tu tiempo, ya que he adelantado mucho, ahora falta interpretar la respuesta de la AEAT

Voy a ver el tema de la firma y el hash de la firma

Rodrigo

bmfranky 19-10-2024 11:10:28

Cita:

Empezado por [email protected] (Mensaje 558399)
Agradecido por tu tiempo. Tomo nota de los prefijos/etiquetas que me indicas y voy a cambiarlo. Tal como entiendes estoy montando a PELO los xmls.
He pasado una prueba con el xml que me aadjunta y aleluya HA FUNCIONADO e imagino que ha llegado a la AEAT por la respuesta que me indican de error. Te lo adjunto :

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Body><env:Fault><faultcode>env:Server</faultcode>
<faultstring>Codigo[20009].
UNSUCCESSFUL EXECUTION CAUSED BY AN UNAVAILABLE RESOURCE.
REASON 00C90081, TYPE OF RESOURCE 00000210,
AND RESOURCE NAME DBTCCSOR.TSTCCSOR.00000001.
SQLCODE=-904, SQLSTATE=57011,
DRIVER=4.33.43
</faultstring>
</env:Fault>
</env:Body>
</env:Envelope>



Donde puedo averiguar lo que significan estos errores y los pasos a seguir.

Gracias

Rodrigo

Hola, buenos dias, no se que codigo usas para realizar el envio, pero la respuesta indica error al accesar algun registro necesario en la mase de datos, al realizar el empaquetado para el envio.

bmfranky 19-10-2024 11:29:37

Enviar a pelo xml en c#
 
Cita:

Empezado por ermendalenda (Mensaje 558400)
Ni idea, aun no me he metido con los envíos, los compañeros seguro que te ayudan. Pero tienes que hener en cuenta que el xml no se manda tal cual. Tienes que empaquetarlo como soap, en eso no te puedo ayudar,.por que a pelo un soap es complicado (praxticamente i posible si nl conoces en profundidad coml funcionan las funciones de firmas etc), hay que firmados con hash etc.
Pero con autoafirma.exe si puedes investigar, aunque tun pelin complicado y no se si se ajustará a los tiempos que necesitas para las generaciones. La otra opción es que compras alguna función api/dll para estas cosas, hay un par de ellas que son adaptables a casi cualquier software de desarrollo antiguo

La verdad es que opinaba lo mismo que tu de enviar el codigo , pero realmente con el xml formado simplemengte hay que añadir las cabecerass y ending soap y enviar por https, y lo acepta sin mas.
Cita:

//facxml es un string que contiene el xml añadimos cabecera

facXml = facXml.Replace("<?xml version=\"1.0\" encoding=\"utf-16\"?>", "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"> <soapenv:Header /> <soapenv:Body >");
//en mi caso me generaba mal esta etiqueta

facXml = facXml.Replace("<RegFactuSistemaFacturacion xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">", "<RegFactuSistemaFacturacion xmlns=\"https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd\">");
//añadimos el ending soap.
facXml = facXml + " </soapenv:Body> </soapenv:Envelope > ";
//lo pasamos a un document para poder realizar la llamada

XmlDocument doc = new XmlDocument();
doc.LoadXml(facXml.Replace("utf-16", "utf-8"));
//llamamos a la funcion que hace la consula soap

string ret = Call("https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP", "RegistroAlta", doc);

Aqui os dejo la funcion que realiza la consulta a la AEAT, por si a alguienle sirve , segun esta formada necesita que se creen unavarialble que contenga el certificado y otra con la clave del mismo.
byte[] Program.certificado , esta variable contiene el certificado usado para firmar la conexion

string Program.passcertificado, esta variable contiene la clave del certificado

[CODE C#]
/// <summary>
/// Llama a al web service de la AEAT para el VeriFactu seleccionado.
/// </summary>
/// <param name="url">Url destino.</param>
/// <param name="action">Acción a ejecutar.</param>
/// <param name="xmlDocument">Documento soap xml.</param>
/// <returns>Devuelve la respuesta.</returns>
protected static string Call(string url, string action, XmlDocument xmlDocument)
{
HttpWebRequest webRequest = CreateWebRequest(url, action);
X509Certificate2 certificate = new X509Certificate2(Program.certificado, Program.passcertificado); // Aqui se carga el certificado, yo lo almaceno en la base de datos, pero podriai s cargarlo desde un archivo
var tiempo = certificate.SubjectName;
if (certificate == null)
throw new ArgumentNullException(
"Certificate is null. Maybe serial number in configuration was wrong.");

if (certificate.NotAfter < DateTime.Now)
throw new ArgumentNullException(
$"Certificate is out of date. NotAfter: {certificate.NotAfter}.");

webRequest.ClientCertificates.Add(certificate);

using (Stream stream = webRequest.GetRequestStream())
{
xmlDocument.Save(stream);
}
HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
string statusDescription = response.StatusDescription;
Stream dataStream = response.GetResponseStream();
string responseFromServer;
using (StreamReader reader = new StreamReader(dataStream))
{
responseFromServer = reader.ReadToEnd();
reader.Close();
dataStream.Close();
response.Close();
}
return responseFromServer;
}

[/code]

ermendalenda 19-10-2024 12:15:23

Cita:

Empezado por bmfranky (Mensaje 558403)
La verdad es que opinaba lo mismo que tu de enviar el codigo , pero realmente con el xml formado simplemengte hay que añadir las cabecerass y ending soap y enviar por https, y lo acepta sin mas.
Aqui os dejo la funcion que realiza la consulta a la AEAT, por si a alguienle sirve , segun esta formada necesita que se creen unavarialble que contenga el certificado y otra con la clave del mismo.
byte[] Program.certificado , esta variable contiene el certificado usado para firmar la conexion

string Program.passcertificado, esta variable contiene la clave del certificado

[CODE C#]
/// <summary>
/// Llama a al web service de la AEAT para el VeriFactu seleccionado.
/// </summary>
/// <param name="url">Url destino.</param>
/// <param name="action">Acción a ejecutar.</param>
/// <param name="xmlDocument">Documento soap xml.</param>
/// <returns>Devuelve la respuesta.</returns>
protected static string Call(string url, string action, XmlDocument xmlDocument)
{
HttpWebRequest webRequest = CreateWebRequest(url, action);
X509Certificate2 certificate = new X509Certificate2(Program.certificado, Program.passcertificado); // Aqui se carga el certificado, yo lo almaceno en la base de datos, pero podriai s cargarlo desde un archivo
var tiempo = certificate.SubjectName;
if (certificate == null)
throw new ArgumentNullException(
"Certificate is null. Maybe serial number in configuration was wrong.");

if (certificate.NotAfter < DateTime.Now)
throw new ArgumentNullException(
$"Certificate is out of date. NotAfter: {certificate.NotAfter}.");

webRequest.ClientCertificates.Add(certificate);

using (Stream stream = webRequest.GetRequestStream())
{
xmlDocument.Save(stream);
}
HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
string statusDescription = response.StatusDescription;
Stream dataStream = response.GetResponseStream();
string responseFromServer;
using (StreamReader reader = new StreamReader(dataStream))
{
responseFromServer = reader.ReadToEnd();
reader.Close();
dataStream.Close();
response.Close();
}
return responseFromServer;
}

[/code]

Wow
Te sería muy complicado poner ecomo quedaria formado el xml empaquetado, buff ojalá.

bmfranky 19-10-2024 13:27:29

Como queda en el envio
 
Cita:

Empezado por ermendalenda (Mensaje 558404)
Wow
Te sería muy complicado poner ecomo quedaria formado el xml empaquetado, buff ojalá.

Queda asi.

Código:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header />
<soapenv:Body>
<RegFactuSistemaFacturacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
<Cabecera xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
    <ObligadoEmision>
        <NombreRazon>Mi taller s.l.</NombreRazon>
        <NIF>mi nif</NIF>
    </ObligadoEmision>
    <RemisionVoluntaria>
        <FechaFinVeriFactu />
        <Incidencia>N</Incidencia>
    </RemisionVoluntaria>
</Cabecera>
<RegistroFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
<RegistroAlta>
    <IDVersion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">1.0</IDVersion>
    <IDFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
        <IDEmisorFactura>Mi nif</IDEmisorFactura>
        <NumSerieFactura>VC1-24-100001</NumSerieFactura>
        <FechaExpedicionFactura>19/10/2024</FechaExpedicionFactura>
    </IDFactura>
    <NombreRazonEmisor xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">Mi Taller</NombreRazonEmisor>
    <TipoFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">F2</TipoFactura>
    <FechaOperacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">19-10-2024</FechaOperacion>
    <DescripcionOperacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">Venta de materiales servidos cliente contado.</DescripcionOperacion>
    <Desglose xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
        <DetalleDesglose>
            <ClaveRegimen>01</ClaveRegimen>
            <CalificacionOperacion>S1</CalificacionOperacion>
            <TipoImpositivo>21.00</TipoImpositivo>
            <BaseImponibleOimporteNoSujeto>133.45</BaseImponibleOimporteNoSujeto>
            <CuotaRepercutida>28.02</CuotaRepercutida>
        </DetalleDesglose>
    </Desglose>
    <CuotaTotal xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">28.02</CuotaTotal>
    <ImporteTotal xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">161.47</ImporteTotal>
    <Encadenamiento xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
        <PrimerRegistro>S</PrimerRegistro>
    </Encadenamiento>
    <SistemaInformatico xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
        <NombreRazon>yo mismo</NombreRazon>
        <NIF>mi nif</NIF>
        <NombreSistemaInformatico>Facturas Taller 2024</NombreSistemaInformatico>
        <IdSistemaInformatico>A1</IdSistemaInformatico>
        <Version>5.1.4.222</Version>
        <NumeroInstalacion>001</NumeroInstalacion>
        <TipoUsoPosibleSoloVerifactu>S</TipoUsoPosibleSoloVerifactu>
        <TipoUsoPosibleMultiOT>N</TipoUsoPosibleMultiOT>
        <IndicadorMultiplesOT>N</IndicadorMultiplesOT>
    </SistemaInformatico>
    <FechaHoraHusoGenRegistro xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">2024-10-19T13:04:40+02:00</FechaHoraHusoGenRegistro>
    <TipoHuella xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">01</TipoHuella>
    <Huella xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">F4C7FAA3D9FF0CF50DD50139224840BFC91A514878EFC34E193A7D6F6301B844</Huella>
</RegistroAlta>
</RegistroFactura>
</RegFactuSistemaFacturacion>
</soapenv:Body>
</soapenv:Envelope>



Perdonad el indentado, pero esta serializado, lo he separado para que se veamejor.

unomasmas 19-10-2024 14:25:18

Cita:

Empezado por bmfranky (Mensaje 558405)
Queda asi.

Código:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header />
<soapenv:Body>
<RegFactuSistemaFacturacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
<Cabecera xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
    <ObligadoEmision>
        <NombreRazon>Mi taller s.l.</NombreRazon>
        <NIF>mi nif</NIF>
    </ObligadoEmision>
    <RemisionVoluntaria>
        <FechaFinVeriFactu />
        <Incidencia>N</Incidencia>
    </RemisionVoluntaria>
</Cabecera>
<RegistroFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
<RegistroAlta>
    <IDVersion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">1.0</IDVersion>
    <IDFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
        <IDEmisorFactura>Mi nif</IDEmisorFactura>
        <NumSerieFactura>VC1-24-100001</NumSerieFactura>
        <FechaExpedicionFactura>19/10/2024</FechaExpedicionFactura>
    </IDFactura>
    <NombreRazonEmisor xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">Mi Taller</NombreRazonEmisor>
    <TipoFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">F2</TipoFactura>
    <FechaOperacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">19-10-2024</FechaOperacion>
    <DescripcionOperacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">Venta de materiales servidos cliente contado.</DescripcionOperacion>
    <Desglose xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
        <DetalleDesglose>
            <ClaveRegimen>01</ClaveRegimen>
            <CalificacionOperacion>S1</CalificacionOperacion>
            <TipoImpositivo>21.00</TipoImpositivo>
            <BaseImponibleOimporteNoSujeto>133.45</BaseImponibleOimporteNoSujeto>
            <CuotaRepercutida>28.02</CuotaRepercutida>
        </DetalleDesglose>
    </Desglose>
    <CuotaTotal xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">28.02</CuotaTotal>
    <ImporteTotal xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">161.47</ImporteTotal>
    <Encadenamiento xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
        <PrimerRegistro>S</PrimerRegistro>
    </Encadenamiento>
    <SistemaInformatico xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
        <NombreRazon>yo mismo</NombreRazon>
        <NIF>mi nif</NIF>
        <NombreSistemaInformatico>Facturas Taller 2024</NombreSistemaInformatico>
        <IdSistemaInformatico>A1</IdSistemaInformatico>
        <Version>5.1.4.222</Version>
        <NumeroInstalacion>001</NumeroInstalacion>
        <TipoUsoPosibleSoloVerifactu>S</TipoUsoPosibleSoloVerifactu>
        <TipoUsoPosibleMultiOT>N</TipoUsoPosibleMultiOT>
        <IndicadorMultiplesOT>N</IndicadorMultiplesOT>
    </SistemaInformatico>
    <FechaHoraHusoGenRegistro xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">2024-10-19T13:04:40+02:00</FechaHoraHusoGenRegistro>
    <TipoHuella xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">01</TipoHuella>
    <Huella xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">F4C7FAA3D9FF0CF50DD50139224840BFC91A514878EFC34E193A7D6F6301B844</Huella>
</RegistroAlta>
</RegistroFactura>
</RegFactuSistemaFacturacion>
</soapenv:Body>
</soapenv:Envelope>

Perdonad el indentado, pero esta serializado, lo he separado para que se veamejor.

También podría ser así, como explicó un poco antes ermendalenda. A mi me parece algo más claro

¡Ojo, cambio hecho a mano. Muy fácil que haya errores!

Código:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sum="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd" xmlns:sum1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<soapenv:Header />
<soapenv:Body>
<sum:RegFactuSistemaFacturacion>
<sum1:Cabecera>
    <sum1:ObligadoEmision>
        <sum1:NombreRazon>Mi taller s.l.</sum1:NombreRazon>
        <sum1:NIF>mi nif</sum1:NIF>
    </sum1:ObligadoEmision>
    <sum1:RemisionVoluntaria>
        <sum1:FechaFinVeriFactu />
        <sum1:Incidencia>N</sum1:Incidencia>
    </sum1:RemisionVoluntaria>
</sum1:Cabecera>
<sum1:RegistroFactura>
<sum1:RegistroAlta>
    <sum1:IDVersion>1.0</sum1:IDVersion>
    <sum1:IDFactura>
        <sum1:IDEmisorFactura>Mi nif</sum1:IDEmisorFactura>
        <sum1:NumSerieFactura>VC1-24-100001</sum1:NumSerieFactura>
        <sum1:FechaExpedicionFactura>19/10/2024</sum1:FechaExpedicionFactura>
    </sum1:IDFactura>
    <sum1:NombreRazonEmisor>Mi Taller</sum1:NombreRazonEmisor>
    <sum1:TipoFactura>F2</sum1:TipoFactura>
    <sum1:FechaOperacion>19-10-2024</sum1:FechaOperacion>
    <sum1:DescripcionOperacion>Venta de materiales servidos cliente contado.</sum1:DescripcionOperacion>
    <sum1:Desglose>
        <sum1:DetalleDesglose>
            <sum1:ClaveRegimen>01</sum1:ClaveRegimen>
            <sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
            <sum1:TipoImpositivo>21.00</sum1:TipoImpositivo>
            <sum1:BaseImponibleOimporteNoSujeto>133.45</sum1:BaseImponibleOimporteNoSujeto>
            <sum1:CuotaRepercutida>28.02</sum1:CuotaRepercutida>
        </sum1:DetalleDesglose>
    </sum1:Desglose>
    <sum1:CuotaTotal>28.02</sum1:CuotaTotal>
    <sum1:ImporteTotal>161.47</sum1:ImporteTotal>
    <sum1:Encadenamiento>
        <sum1:PrimerRegistro>S</sum1:PrimerRegistro>
    </sum1:Encadenamiento>
    <sum1:SistemaInformatico>
        <sum1:NombreRazon>yo mismo</sum1:NombreRazon>
        <sum1:NIF>mi nif</sum1:NIF>
        <sum1:NombreSistemaInformatico>Facturas Taller 2024</sum1:NombreSistemaInformatico>
        <sum1:IdSistemaInformatico>A1</sum1:IdSistemaInformatico>
        <sum1:Version>5.1.4.222</sum1:Version>
        <sum1:NumeroInstalacion>001</sum1:NumeroInstalacion>
        <sum1:TipoUsoPosibleSoloVerifactu>S</sum1:TipoUsoPosibleSoloVerifactu>
        <sum1:TipoUsoPosibleMultiOT>N</sum1:TipoUsoPosibleMultiOT>
        <sum1:IndicadorMultiplesOT>N</sum1:IndicadorMultiplesOT>
    </sum1:SistemaInformatico>
    <sum1:FechaHoraHusoGenRegistro>2024-10-19T13:04:40+02:00</sum1:FechaHoraHusoGenRegistro>
    <sum1:TipoHuella>01</sum1:TipoHuella>
    <sum1:Huella>F4C7FAA3D9FF0CF50DD50139224840BFC91A514878EFC34E193A7D6F6301B844</sum1:Huella>
</sum1:RegistroAlta>
</sum1:RegistroFactura>
</sum:RegFactuSistemaFacturacion>
</soapenv:Body>
</soapenv:Envelope>


ermendalenda 19-10-2024 20:48:42

Cita:

Empezado por bmfranky (Mensaje 558405)
Queda asi.

Código:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header />
<soapenv:Body>
<RegFactuSistemaFacturacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
<Cabecera xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
    <ObligadoEmision>
        <NombreRazon>Mi taller s.l.</NombreRazon>
        <NIF>mi nif</NIF>
    </ObligadoEmision>
    <RemisionVoluntaria>
        <FechaFinVeriFactu />
        <Incidencia>N</Incidencia>
    </RemisionVoluntaria>
</Cabecera>
<RegistroFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
<RegistroAlta>
    <IDVersion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">1.0</IDVersion>
    <IDFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
        <IDEmisorFactura>Mi nif</IDEmisorFactura>
        <NumSerieFactura>VC1-24-100001</NumSerieFactura>
        <FechaExpedicionFactura>19/10/2024</FechaExpedicionFactura>
    </IDFactura>
    <NombreRazonEmisor xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">Mi Taller</NombreRazonEmisor>
    <TipoFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">F2</TipoFactura>
    <FechaOperacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">19-10-2024</FechaOperacion>
    <DescripcionOperacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">Venta de materiales servidos cliente contado.</DescripcionOperacion>
    <Desglose xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
        <DetalleDesglose>
            <ClaveRegimen>01</ClaveRegimen>
            <CalificacionOperacion>S1</CalificacionOperacion>
            <TipoImpositivo>21.00</TipoImpositivo>
            <BaseImponibleOimporteNoSujeto>133.45</BaseImponibleOimporteNoSujeto>
            <CuotaRepercutida>28.02</CuotaRepercutida>
        </DetalleDesglose>
    </Desglose>
    <CuotaTotal xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">28.02</CuotaTotal>
    <ImporteTotal xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">161.47</ImporteTotal>
    <Encadenamiento xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
        <PrimerRegistro>S</PrimerRegistro>
    </Encadenamiento>
    <SistemaInformatico xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
        <NombreRazon>yo mismo</NombreRazon>
        <NIF>mi nif</NIF>
        <NombreSistemaInformatico>Facturas Taller 2024</NombreSistemaInformatico>
        <IdSistemaInformatico>A1</IdSistemaInformatico>
        <Version>5.1.4.222</Version>
        <NumeroInstalacion>001</NumeroInstalacion>
        <TipoUsoPosibleSoloVerifactu>S</TipoUsoPosibleSoloVerifactu>
        <TipoUsoPosibleMultiOT>N</TipoUsoPosibleMultiOT>
        <IndicadorMultiplesOT>N</IndicadorMultiplesOT>
    </SistemaInformatico>
    <FechaHoraHusoGenRegistro xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">2024-10-19T13:04:40+02:00</FechaHoraHusoGenRegistro>
    <TipoHuella xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">01</TipoHuella>
    <Huella xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">F4C7FAA3D9FF0CF50DD50139224840BFC91A514878EFC34E193A7D6F6301B844</Huella>
</RegistroAlta>
</RegistroFactura>
</RegFactuSistemaFacturacion>
</soapenv:Body>
</soapenv:Envelope>

Perdonad el indentado, pero esta serializado, lo he separado para que se veamejor.



Oleeeee
Gracias


He enviado desde el programa curl.exe y va perfecto

bmfranky 19-10-2024 22:06:30

Etiquetas cierre
 
Cita:

Empezado por unomasmas (Mensaje 558407)
También podría ser así, como explicó un poco antes ermendalenda. A mi me parece algo más claro

¡Ojo, cambio hecho a mano. Muy fácil que haya errores!

Código:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sum="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd" xmlns:sum1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<soapenv:Header />
<soapenv:Body>
<sum:RegFactuSistemaFacturacion>
<sum1:Cabecera>
    <sum1:ObligadoEmision>
        <sum1:NombreRazon>Mi taller s.l.</sum1:NombreRazon>
        <sum1:NIF>mi nif</sum1:NIF>
    </sum1:ObligadoEmision>
    <sum1:RemisionVoluntaria>
        <sum1:FechaFinVeriFactu />
        <sum1:Incidencia>N</sum1:Incidencia>
    </sum1:RemisionVoluntaria>
</sum1:Cabecera>
<sum1:RegistroFactura>
<sum1:RegistroAlta>
    <sum1:IDVersion>1.0</sum1:IDVersion>
    <sum1:IDFactura>
        <sum1:IDEmisorFactura>Mi nif</sum1:IDEmisorFactura>
        <sum1:NumSerieFactura>VC1-24-100001</sum1:NumSerieFactura>
        <sum1:FechaExpedicionFactura>19/10/2024</sum1:FechaExpedicionFactura>
    </sum1:IDFactura>
    <sum1:NombreRazonEmisor>Mi Taller</sum1:NombreRazonEmisor>
    <sum1:TipoFactura>F2</sum1:TipoFactura>
    <sum1:FechaOperacion>19-10-2024</sum1:FechaOperacion>
    <sum1:DescripcionOperacion>Venta de materiales servidos cliente contado.</sum1:DescripcionOperacion>
    <sum1:Desglose>
        <sum1:DetalleDesglose>
            <sum1:ClaveRegimen>01</sum1:ClaveRegimen>
            <sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
            <sum1:TipoImpositivo>21.00</sum1:TipoImpositivo>
            <sum1:BaseImponibleOimporteNoSujeto>133.45</sum1:BaseImponibleOimporteNoSujeto>
            <sum1:CuotaRepercutida>28.02</sum1:CuotaRepercutida>
        </sum1:DetalleDesglose>
    </sum1:Desglose>
    <sum1:CuotaTotal>28.02</sum1:CuotaTotal>
    <sum1:ImporteTotal>161.47</sum1:ImporteTotal>
    <sum1:Encadenamiento>
        <sum1:PrimerRegistro>S</sum1:PrimerRegistro>
    </sum1:Encadenamiento>
    <sum1:SistemaInformatico>
        <sum1:NombreRazon>yo mismo</sum1:NombreRazon>
        <sum1:NIF>mi nif</sum1:NIF>
        <sum1:NombreSistemaInformatico>Facturas Taller 2024</sum1:NombreSistemaInformatico>
        <sum1:IdSistemaInformatico>A1</sum1:IdSistemaInformatico>
        <sum1:Version>5.1.4.222</sum1:Version>
        <sum1:NumeroInstalacion>001</sum1:NumeroInstalacion>
        <sum1:TipoUsoPosibleSoloVerifactu>S</sum1:TipoUsoPosibleSoloVerifactu>
        <sum1:TipoUsoPosibleMultiOT>N</sum1:TipoUsoPosibleMultiOT>
        <sum1:IndicadorMultiplesOT>N</sum1:IndicadorMultiplesOT>
    </sum1:SistemaInformatico>
    <sum1:FechaHoraHusoGenRegistro>2024-10-19T13:04:40+02:00</sum1:FechaHoraHusoGenRegistro>
    <sum1:TipoHuella>01</sum1:TipoHuella>
    <sum1:Huella>F4C7FAA3D9FF0CF50DD50139224840BFC91A514878EFC34E193A7D6F6301B844</sum1:Huella>
</sum1:RegistroAlta>
</sum1:RegistroFactura>
</sum:RegFactuSistemaFacturacion>
</soapenv:Body>
</soapenv:Envelope>



Hola, una cosa las etiquetas de cierre no llevan referencia, no se la incluyas o al parsear te dara error.


Código:


Esto ,

</sum1:FechaHoraHusoGenRegistro>
Es asi:

</FechaHoraHusoGenRegistro>

Las etiquetas de cierre nisiquiera pueden incluir espacios en blanco a no ser que sean parte del nombre

ermendalenda 19-10-2024 22:58:06

Diagrama de flujos control de envios
 
Creo que es buena idea que creemos un diagrama de flujos del control de envios/errores
Es un pelin lioso según el mensaje warning o error que devuelve

bmfranky 19-10-2024 23:13:44

Cita:

Empezado por ermendalenda (Mensaje 558415)
Creo que es buena idea que creemos un diagrama de flujos del control de envios/errores
Es un pelin lioso según el mensaje warning o error que devuelve


Por mi perfecto, pero sinceramente, los unicos fallos que he tenido, an sido generados por las mismas pruebas, porque los que se refieren a la estructura del xml por ejemplo, o los valores en los campos numericos, etc... los has de tener controlados antes de rellenar los mismos.
Por ejemplo si los campos numericos solopueden incluir 2 decimales y un unico punto decimal ".", hay que formatear la entarda del usuario o convertir los valores al respecto , par aevitar cualquier valor que infrinja la norma.
Como ese otros, por ejemplo el de registro duplicado, si nos cercioramos de que se graba siempre despues de generado y actualizamos el contador, es dificil enviar un duplicado, como ese muchos.
Los clientes verificar si estan censados los que usan dni, sino se asigna la casilla de no censado, que es un extranjero , usar el type adecuado...

Los que me asustan mas son los fallos de conexion.



Y realmente liarla parda con los abonos , rectificativas y todas esas cositas que nunca heusado :D:D

ermendalenda 19-10-2024 23:38:42

Cita:

Empezado por bmfranky (Mensaje 558416)
Por mi perfecto, pero sinceramente, los unicos fallos que he tenido, an sido generados por las mismas pruebas, porque los que se refieren a la estructura del xml por ejemplo, o los valores en los campos numericos, etc... los has de tener controlados antes de rellenar los mismos.
Por ejemplo si los campos numericos solopueden incluir 2 decimales y un unico punto decimal ".", hay que formatear la entarda del usuario o convertir los valores al respecto , par aevitar cualquier valor que infrinja la norma.
Como ese otros, por ejemplo el de registro duplicado, si nos cercioramos de que se graba siempre despues de generado y actualizamos el contador, es dificil enviar un duplicado, como ese muchos.
Los clientes verificar si estan censados los que usan dni, sino se asigna la casilla de no censado, que es un extranjero , usar el type adecuado...

Los que me asustan mas son los fallos de conexion.



Y realmente liarla parda con los abonos , rectificativas y todas esas cositas que nunca heusado :D:D

Errores conwxion
Error nif cliente mo coincide con nombre
Error hora
Solo por que tengamos claro que hay que hacer. Marcar incidencia. Rectificativa...

jguarda 20-10-2024 00:32:06

dudas
 
Verifactu me dice que el nif con el que envio la factura no está dado de alta. Como habeís solucionado este tema.


Gracias

ermendalenda 20-10-2024 09:21:25

Cita:

Empezado por jguarda (Mensaje 558418)
Verifactu me dice que el nif con el que envio la factura no está dado de alta. Como habeís solucionado este tema.


Gracias

Hola, yo solo tengo ese problema si envio con un nif que no existe o de pruebas de estos tipos:Juan Español Español 12312312F
Comprueba que el nombre corresponda (al menos parcialmente) con el que está dado de alta en la aeat. por ejemplo no puedes poner un nif de persona fisica asociado a un nombre comercial.

ermendalenda 20-10-2024 09:59:23

Importante Para Envios Con Curl Para Software Antiguo
 
Hola, creo que es importante que se ponga esto en el primer post. Puede que le "salve la vida" a más de uno que usa desarrollo antiguo, tipo vb 6.0 , delphis antiquísimos etc..

Para realizar los envios con la aplicación Curl.exe.
1. Encapsular el fichero xml en SOAP.
Para ello agregar al fichero el inicio y final del soap
Código PHP:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sum="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd" xmlns:sum1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<
soapenv:Header />
<
soapenv:Body>
<
sum:RegFactuSistemaFacturacion>
....
..
</
sum:RegFactuSistemaFacturacion>
</
soapenv:Body>
</
soapenv:Envelope

Ojo hay que quitarle
Código PHP:

<?xml version="1.0" encoding="UTF-8"?>

y si habeis puesto el inicio del nodo RegFactuSistemaFacturacion con referencias quitarlas y dejarlas así:
Código PHP:

<sum:RegFactuSistemaFacturacion

Ya que las referencias ya estan en el soap, aunque lo mismo funciona poniendolo en uno o en otro, pero si lo dejas en los 2 no va a funcionar.


2.Enviar el fichero soap con CURL.exe

Os dejo el comando, al que podeis hacerle modificaciones
curl.exe --connect-timeout 300 -m 300 -k -L -d "@C:\....\VFac22223.xml" -o respuesta_
VFac22223.xml -D cabecera_VFac22223.xml --cert-type P12 --cert C:\...certificado.pfx:contraseña https://prewww1.aeat.es/wlpl/TIKE-CO.../VerifactuSOAP --trace respuestatrace_VFac22223.txt

Explico un poco:
-Para enviar de esta forma podeis tener en una carpeeta el certificado con el que enviais en formato pfx/pt2, aunque el comando curl tambien admite usar certificados desde un almacen en el que lo habeis importado, si lo necesitais desde almacen podeis buscar ayuda al respectgo por el google.
-Aunque para saber un poco más de los parametros curl podeis ejecutar curl --help all desde el cmd os dejo las explicaciones a los parametros que uso:
*Los timeouts, son los tiempos de espera en segundos, que aunque los he puesto un poco exagerados, por experiencia los prefiero tener así, ya que me he encontrado en situaciones de conexiones 2G o que usaban un router de datos con los datos agotados y al menos alarga unos megas mas los envios a velocidad lenta.
*La opción -k os quitará muchos dolores de cabeza, ya que a veces hay restricciones de envios por temas de firewall, seguridad..., y es para que no tenga en cuenta si ha caducado el certificado del propio curl o de vuestro propio sistema... pero no tiene nada que ver con que caduque el certificado electronico con el que enviais, si ese caduca, channn-- error---

*La opcion -L permite que haya redirecciones, no es necesario, pero lo activo por si acaso meten alguna redireccion
*La opcion -d seguida de la ruta completa del archivo a enviar entrecomillada y precedida por el simbolo arroba @ antes de la ruta, es el archivo a enviar, se precede por el @ parea que se envie y reciba en formato binario y nos aseguremos que los caracteres que enviamos no lleguen convertidos a otro sistema que no sea el UTF8.
*La opción -o seguida de la ruta completa de la respuesta, nos devolverá en un fichero la respuesta de Hacienda en formato XML. Aconsejo usarla con la respuesta de cabecera -D, ya que podemos ver previamente si hay conexion o no, o sea, el de cabecera nos proporciona informacion adicional sobre la conexion, el fichero de cabecera puede tener varios estados: uno de ellos es vacio o que no se genere(con lo cual no ha habido conexion) y si tiene contenido nos informa si la conexion ha sido ok, haced bastantes pruebas, quitando la red, mandando repetidos etc.
* La opción --trace, no es necesaria, solo para hacer alguna prueba más severa por que tengamos algun problema con alguna conexion en particular y queramos informacion muy específica de todo lo que esta haciendo el comando.
* La opcion --cert-type P12 --cert continuada por el nombre del fichero(certificado pfx/pt2), continuada por dos puntos ":" y la contraseña indicamos que estamos enviando con un certificado de un fichero que tenemos donde indicamos. Debeis tener especial cuidad con este comando de no dejar rastros, no es aconsejable crear un .bat ni nada de eso, y tened en cuenta que es un pelin inseguro por temas que no voy a decir aquí.
* Y ya por ultimo el servidor para las altas de facturas:
https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP


Nota:
Podeis tener problemas con el servidor si teneis un router con tarjeta de datos 3g/4g/5g si el proveedor os han metido CG-NAT (de repente) o s han puesto en un blacklist, para saberlo receibirais al conectar un error 443, normalmente no es problema del firewall, que ese es otro tema, para corregir el problema teneis 2 opciones, o llamais al proveedor y os lo soluciona (le decis que os saque del CG-NAT) o cambias la tarjeta de datos.
Os lo digo por si quereis meter ese control en las respuestas, ya que no es un error frecuente y os puede también dar dolores de cabeza.

unomasmas 20-10-2024 10:46:43

Cita:

Empezado por bmfranky (Mensaje 558414)
Hola, una cosa las etiquetas de cierre no llevan referencia, no se la incluyas o al parsear te dara error.


Código:


Esto ,

</sum1:FechaHoraHusoGenRegistro>
Es asi:

</FechaHoraHusoGenRegistro>

Las etiquetas de cierre nisiquiera pueden incluir espacios en blanco a no ser que sean parte del nombre

Desde luego, todavía más limpio sin referencia en las etiquetas de cierre pero he hecho pruebas con etiquetas de cierre con referencia y no ha presentado ningún problema. También me fijo en que ellos devuelven la respuesta con etiquetas de cierre con referencia...

¿Qué error te da al parsear?

ermendalenda 20-10-2024 10:55:54

Habría que preguntar a Verifactu cuanto tiempo Dan para cambiar la versión y esquema de envíos después de cada cambio para que no devuelvan error o
, dicho de otra forma, durante cuanto tiempo aceptaran las versiones anteriores después de una modificación, a ver si no nos podemos ir de vacaciones

bmfranky 20-10-2024 14:07:06

Para los errores de dni no censado.
 
Cita:

Errores conwxion
1-> Error nif cliente mo coincide con nombre
2-> Error hora
Solo por que tengamos claro que hay que hacer. Marcar incidencia. Rectificativa...
Cita:

Empezado por jguarda (Mensaje 558418)
3-> Verifactu me dice que el nif con el que envio la factura no está dado de alta. Como habeís solucionado este tema.


Gracias


Hola, para los casos 2 y 3 hay una solucion propuesta por la misma administracion, porque puede ser perfectamente que un cliente no este censado en hacienda y al reenviarpor un corte seguro estamos fuera, de la hora de generacion fijo.


Para el caso 1 y 3 uso la misma solucion, compruebo la estructura que este bien formado, que no lo haya introducido mal.
Código:

  class verificaDniCif
    {
      public static Boolean valida_NIFCIFNIE(string data)
        {
            if (String.IsNullOrEmpty(data) || data.Length < 8)
                return false;

            var initialLetter = data.Substring(0, 1).ToUpper();
            if (Char.IsLetter(data, 0))
            {
                switch (initialLetter)
                {
                    case "X":
                        data = "0" + data.Substring(1, data.Length - 1);
                        return validarNIF(data);
                    case "Y":
                        data = "1" + data.Substring(1, data.Length - 1);
                        return validarNIF(data);
                    case "Z":
                        data = "2" + data.Substring(1, data.Length - 1);
                        return validarNIF(data);
                    default:
                        if (new Regex("[A-Za-z][0-9]{7}[A-Za-z0-9]{1}$").Match(data).Success)
                            return validadCIF(data);
                        break;
                }
            }
            else if (Char.IsLetter(data, data.Length - 1))
            {
                if (new Regex("[0-9]{8}[A-Za-z]").Match(data).Success || new Regex("[0-9]{7}[A-Za-z]").Match(data).Success)
                    return validarNIF(data);
            }
            return false;
        }

        private static string getLetra(int id)
        {
            Dictionary<int, String> letras = new Dictionary<int, string>();
            letras.Add(0, "T");
            letras.Add(1, "R");
            letras.Add(2, "W");
            letras.Add(3, "A");
            letras.Add(4, "G");
            letras.Add(5, "M");
            letras.Add(6, "Y");
            letras.Add(7, "F");
            letras.Add(8, "P");
            letras.Add(9, "D");
            letras.Add(10, "X");
            letras.Add(11, "B");
            letras.Add(12, "N");
            letras.Add(13, "J");
            letras.Add(14, "Z");
            letras.Add(15, "S");
            letras.Add(16, "Q");
            letras.Add(17, "V");
            letras.Add(18, "H");
            letras.Add(19, "L");
            letras.Add(20, "C");
            letras.Add(21, "K");
            letras.Add(22, "E");
            return letras[id];
        }

        private static bool validarNIF(string data)
        {
            if (data == String.Empty)
                return false;
            try
            {
                String letra;
                letra = data.Substring(data.Length - 1, 1);
                data = data.Substring(0, data.Length - 1);
                int nifNum = int.Parse(data);
                int resto = nifNum % 23;
                string tmp = getLetra(resto);
                if (tmp.ToLower() != letra.ToLower())
                    return false;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return false;
            }
            return true;
        }

        private static bool validadCIF(string data)
        {
            try
            {
                int pares = 0;
                int impares = 0;
                int suma;
                string ultima;
                int unumero;
                string[] uletra = new string[] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "0" };
                string[] fletra = new string[] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J" };
                int[] fletra1 = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
                string xxx;

                /*
                * T      P      P      N  N  N  N  N  C
                Siendo:
                T: Letra de tipo de Organización, una de las siguientes: A,B,C,D,E,F,G,H,K,L,M,N,P,Q,S.
                P: Código provincial.
                N: Númeración secuenial dentro de la provincia.
                C: Dígito de control, un número ó letra: Aó1,Bó2,Có3,Dó4,Eó5,Fó6,Gó7,Hó8,Ió9,Jó0.
                *
                *
                A.    Sociedades anónimas.
                B.    Sociedades de responsabilidad limitada.
                C.    Sociedades colectivas.
                D.    Sociedades comanditarias.
                E.    Comunidades de bienes y herencias yacentes.
                F.    Sociedades cooperativas.
                G.    Asociaciones.
                H.    Comunidades de propietarios en régimen de propiedad horizontal.
                I.    Sociedades civiles, con o sin personalidad jurídica.
                J.    Corporaciones Locales.
                K.    Organismos públicos.
                L.    Congregaciones e instituciones religiosas.
                M.    Órganos de la Administración del Estado y de las Comunidades Autónomas.
                N.    Uniones Temporales de Empresas.
                O.    Otros tipos no definidos en el resto de claves.

                */
                data = data.ToUpper();

                ultima = data.Substring(8, 1);

                int cont = 1;
                for (cont = 1; cont < 7; cont++)
                {
                    xxx = (2 * int.Parse(data.Substring(cont++, 1))) + "0";
                    impares += int.Parse(xxx.ToString().Substring(0, 1)) + int.Parse(xxx.ToString().Substring(1, 1));
                    pares += int.Parse(data.Substring(cont, 1));
                }

                xxx = (2 * int.Parse(data.Substring(cont, 1))) + "0";
                impares += int.Parse(xxx.Substring(0, 1)) + int.Parse(xxx.Substring(1, 1));

                suma = pares + impares;
                unumero = int.Parse(suma.ToString().Substring(suma.ToString().Length - 1, 1));
                unumero = 10 - unumero;
                if (unumero == 10) unumero = 0;

                if ((ultima == unumero.ToString()) || (ultima == uletra[unumero - 1]))
                    return true;
                else
                    return false;

            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return false;
            }
        }
    }

Si esta correcto compruebo el Nif con hacienda usando la opcion de buscar los datos del nif en hacienda.http://www2.agenciatributaria.gob.es...ws/VNifV2.wsdl
Código:

        /// <summary>
        /// Comprueba si un CIF/NIf esta censado
        /// </summary>
        /// <returns>Si o No segun el estado del censo</returns>
        public string Censado()
        {
            string censado = "No";
            System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
            Salida respuestaNif = new Salida();
            Entrada checaNif = new Entrada();
            VNifV2EntContribuyente contribuyente = new VNifV2EntContribuyente();
            contribuyente.Nif = Dni.Text;
            contribuyente.Nombre = Apellido1.Text + " " + Apellido2.Text + " " + nom.Text;
            VNifV2EntContribuyente[] contrib = new VNifV2EntContribuyente[1];
            contrib[0] = contribuyente;
            checaNif.VNifV2Ent = contrib;
            VNifV2Client checa = new VNifV2Client("VNifPort1");
            checa.ClientCredentials.ClientCertificate.Certificate = new System.Security.Cryptography.X509Certificates.X509Certificate2(Program.certificado, Program.passcertificado);
            checa.ClientCredentials.UseIdentityConfiguration = true;
            checa.ClientCredentials.SupportInteractive = true;
            VNifV2SalContribuyente nifsalida = new VNifV2SalContribuyente();

            var resultado = checa.VNifV2(checaNif);
            if(resultado.VNifV2Sal[0].Resultado == "IDENTIFICADO")
            {
                txtCensado.BackColor = Color.Green;
                censado = "Si";
            }
            else
            {
                txtCensado.BackColor = Color.Red;
                MessageBox.Show("El cliente no esta censado en hacienda o sus datos son incorrectos, por favor reviselo , o no se podra utilizar para enviar le facturas.");
            }
            return censado;
        }

Si el CIF/NIF esta bien estructurado , pero no censado, se usa el tipo IDotro, rellenando todos los campos y estableciendo el idtype en 7, no censado
Código:

idOtro.IDType = PersonaFisicaJuridicaIDTypeType.Item07;
En cuanto a la hora , el numero 2, dan la opcion de consignar Incidencia, para que no tenga en cuenta la hora,
Cita:

Buenas tardes:
Este es un error de los denominados admisibles (ver documento de validaciones, apartado "4.3 Tratamiento de los errores admisibles ") y debido a ello se admitirá el registro. Este error en concreto, se excepciona de la necesidad de ser subsanado por lo que necesitarían realizar ninguna subsanación posteriormente.
Otra cuestión a tener en cuenta, es que está previsto que los sistemas informáticos de facturación, tengan indisponibilidades como cortes de luz, falta de conexión, fallos en el sistema , etc. y se pueda superar el tiempo establecido...En esos casos deben activar el campo "Incidencia" (ver diseño de registro, hoja "1)DR Remisión Alta-Anul.VF-Req.") para que no les aparezca dicho error
Por otro lado, en vuestro caso que rellenais a pelo el xml, deveriais intentar rellenar lo ultimo le Timestamp para que tengais el mayor margen posible.

jguarda 20-10-2024 14:10:21

duda
 
Yo en mi sistema, para componer el nro de factura me baso en el año, de esta manera, cada nuevo ejercicio o año, el programa comienza con el nro 1 de factura, xq la serie por asi decirlo cambia. es decir.


ejercicio 2024 -> 2024.XXXXX1 donde XXXXX1 es el nro de factura, comenzando por el nro. 1. en cada ejercicio.

ejercicio 2025 -> 2025.XXXXX1

ejercicio 2026 -> 2026.XXXXX1


¿ que ocurre entonces con el encadenamiento ?.


supongo que la primera factura de cada ejercicio nuevo, se envia sin encadenamiento no ?, por asi decirlo, es como si empezara desde cero o como lo habeis implementado vosotros ??


He visto algun programa, que el nro de factura siempre va creciendo, es decir, si llevase 6-7 años usándolo puede estar por un nro de factura enorme ... independiente del ejercicio, esto para mi supone un follon de tres pares ... cambiaria toda la lógica del programa con lo q eso supone.

ermendalenda 20-10-2024 14:35:07

Cita:

Empezado por jguarda (Mensaje 558438)
Yo en mi sistema, para componer el nro de factura me baso en el año, de esta manera, cada nuevo ejercicio o año, el programa comienza con el nro 1 de factura, xq la serie por asi decirlo cambia. es decir.


ejercicio 2024 -> 2024.XXXXX1 donde XXXXX1 es el nro de factura, comenzando por el nro. 1. en cada ejercicio.

ejercicio 2025 -> 2025.XXXXX1

ejercicio 2026 -> 2026.XXXXX1


¿ que ocurre entonces con el encadenamiento ?.


supongo que la primera factura de cada ejercicio nuevo, se envia sin encadenamiento no ?, por asi decirlo, es como si empezara desde cero o como lo habeis implementado vosotros ??


He visto algun programa, que el nro de factura siempre va creciendo, es decir, si llevase 6-7 años usándolo puede estar por un nro de factura enorme ... independiente del ejercicio, esto para mi supone un follon de tres pares ... cambiaria toda la lógica del programa con lo q eso supone.

Es correcta tu for a de actuar, puedes empezar por el numero 1
,pero tienes que seguir encadenando con el último del año anterior, recuerda que el encadenamiento no es por serie es por orden cronológico, independientemente de la serie. Puedes encadenar 2 registros de series distintos y de distintos años.

ermendalenda 20-10-2024 14:38:16

Cita:

Empezado por bmfranky (Mensaje 558437)
Hola, para los casos 2 y 3 hay una solucion propuesta por la misma administracion, porque puede ser perfectamente que un cliente no este censado en hacienda y al reenviarpor un corte seguro estamos fuera, de la hora de generacion fijo.


Para el caso 1 y 3 uso la misma solucion, compruebo la estructura que este bien formado, que no lo haya introducido mal.
Código:

  class verificaDniCif
    {
      public static Boolean valida_NIFCIFNIE(string data)
        {
            if (String.IsNullOrEmpty(data) || data.Length < 8)
                return false;

            var initialLetter = data.Substring(0, 1).ToUpper();
            if (Char.IsLetter(data, 0))
            {
                switch (initialLetter)
                {
                    case "X":
                        data = "0" + data.Substring(1, data.Length - 1);
                        return validarNIF(data);
                    case "Y":
                        data = "1" + data.Substring(1, data.Length - 1);
                        return validarNIF(data);
                    case "Z":
                        data = "2" + data.Substring(1, data.Length - 1);
                        return validarNIF(data);
                    default:
                        if (new Regex("[A-Za-z][0-9]{7}[A-Za-z0-9]{1}$").Match(data).Success)
                            return validadCIF(data);
                        break;
                }
            }
            else if (Char.IsLetter(data, data.Length - 1))
            {
                if (new Regex("[0-9]{8}[A-Za-z]").Match(data).Success || new Regex("[0-9]{7}[A-Za-z]").Match(data).Success)
                    return validarNIF(data);
            }
            return false;
        }

        private static string getLetra(int id)
        {
            Dictionary<int, String> letras = new Dictionary<int, string>();
            letras.Add(0, "T");
            letras.Add(1, "R");
            letras.Add(2, "W");
            letras.Add(3, "A");
            letras.Add(4, "G");
            letras.Add(5, "M");
            letras.Add(6, "Y");
            letras.Add(7, "F");
            letras.Add(8, "P");
            letras.Add(9, "D");
            letras.Add(10, "X");
            letras.Add(11, "B");
            letras.Add(12, "N");
            letras.Add(13, "J");
            letras.Add(14, "Z");
            letras.Add(15, "S");
            letras.Add(16, "Q");
            letras.Add(17, "V");
            letras.Add(18, "H");
            letras.Add(19, "L");
            letras.Add(20, "C");
            letras.Add(21, "K");
            letras.Add(22, "E");
            return letras[id];
        }

        private static bool validarNIF(string data)
        {
            if (data == String.Empty)
                return false;
            try
            {
                String letra;
                letra = data.Substring(data.Length - 1, 1);
                data = data.Substring(0, data.Length - 1);
                int nifNum = int.Parse(data);
                int resto = nifNum % 23;
                string tmp = getLetra(resto);
                if (tmp.ToLower() != letra.ToLower())
                    return false;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return false;
            }
            return true;
        }

        private static bool validadCIF(string data)
        {
            try
            {
                int pares = 0;
                int impares = 0;
                int suma;
                string ultima;
                int unumero;
                string[] uletra = new string[] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "0" };
                string[] fletra = new string[] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J" };
                int[] fletra1 = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
                string xxx;

                /*
                * T      P      P      N  N  N  N  N  C
                Siendo:
                T: Letra de tipo de Organización, una de las siguientes: A,B,C,D,E,F,G,H,K,L,M,N,P,Q,S.
                P: Código provincial.
                N: Númeración secuenial dentro de la provincia.
                C: Dígito de control, un número ó letra: Aó1,Bó2,Có3,Dó4,Eó5,Fó6,Gó7,Hó8,Ió9,Jó0.
                *
                *
                A.    Sociedades anónimas.
                B.    Sociedades de responsabilidad limitada.
                C.    Sociedades colectivas.
                D.    Sociedades comanditarias.
                E.    Comunidades de bienes y herencias yacentes.
                F.    Sociedades cooperativas.
                G.    Asociaciones.
                H.    Comunidades de propietarios en régimen de propiedad horizontal.
                I.    Sociedades civiles, con o sin personalidad jurídica.
                J.    Corporaciones Locales.
                K.    Organismos públicos.
                L.    Congregaciones e instituciones religiosas.
                M.    Órganos de la Administración del Estado y de las Comunidades Autónomas.
                N.    Uniones Temporales de Empresas.
                O.    Otros tipos no definidos en el resto de claves.

                */
                data = data.ToUpper();

                ultima = data.Substring(8, 1);

                int cont = 1;
                for (cont = 1; cont < 7; cont++)
                {
                    xxx = (2 * int.Parse(data.Substring(cont++, 1))) + "0";
                    impares += int.Parse(xxx.ToString().Substring(0, 1)) + int.Parse(xxx.ToString().Substring(1, 1));
                    pares += int.Parse(data.Substring(cont, 1));
                }

                xxx = (2 * int.Parse(data.Substring(cont, 1))) + "0";
                impares += int.Parse(xxx.Substring(0, 1)) + int.Parse(xxx.Substring(1, 1));

                suma = pares + impares;
                unumero = int.Parse(suma.ToString().Substring(suma.ToString().Length - 1, 1));
                unumero = 10 - unumero;
                if (unumero == 10) unumero = 0;

                if ((ultima == unumero.ToString()) || (ultima == uletra[unumero - 1]))
                    return true;
                else
                    return false;

            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return false;
            }
        }
    }

Si esta correcto compruebo el Nif con hacienda usando la opcion de buscar los datos del nif en hacienda.http://www2.agenciatributaria.gob.es...ws/VNifV2.wsdl
Código:

        /// <summary>
        /// Comprueba si un CIF/NIf esta censado
        /// </summary>
        /// <returns>Si o No segun el estado del censo</returns>
        public string Censado()
        {
            string censado = "No";
            System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
            Salida respuestaNif = new Salida();
            Entrada checaNif = new Entrada();
            VNifV2EntContribuyente contribuyente = new VNifV2EntContribuyente();
            contribuyente.Nif = Dni.Text;
            contribuyente.Nombre = Apellido1.Text + " " + Apellido2.Text + " " + nom.Text;
            VNifV2EntContribuyente[] contrib = new VNifV2EntContribuyente[1];
            contrib[0] = contribuyente;
            checaNif.VNifV2Ent = contrib;
            VNifV2Client checa = new VNifV2Client("VNifPort1");
            checa.ClientCredentials.ClientCertificate.Certificate = new System.Security.Cryptography.X509Certificates.X509Certificate2(Program.certificado, Program.passcertificado);
            checa.ClientCredentials.UseIdentityConfiguration = true;
            checa.ClientCredentials.SupportInteractive = true;
            VNifV2SalContribuyente nifsalida = new VNifV2SalContribuyente();

            var resultado = checa.VNifV2(checaNif);
            if(resultado.VNifV2Sal[0].Resultado == "IDENTIFICADO")
            {
                txtCensado.BackColor = Color.Green;
                censado = "Si";
            }
            else
            {
                txtCensado.BackColor = Color.Red;
                MessageBox.Show("El cliente no esta censado en hacienda o sus datos son incorrectos, por favor reviselo , o no se podra utilizar para enviar le facturas.");
            }
            return censado;
        }

Si el CIF/NIF esta bien estructurado , pero no censado, se usa el tipo IDotro, rellenando todos los campos y estableciendo el idtype en 7, no censado
Código:

idOtro.IDType = PersonaFisicaJuridicaIDTypeType.Item07;
En cuanto a la hora , el numero 2, dan la opcion de consignar Incidencia, para que no tenga en cuenta la hora,
Por otro lado, en vuestro caso que rellenais a pelo el xml, deveriais intentar rellenar lo ultimo le Timestamp para que tengais el mayor margen posible.

Gracias
Ya .as o menos se vé por donde van
Yo antes de enviar voy a comprobar la hora del registro y le meto incidencia si ha pasado por ejemplo 100 segundos, ya veo que si no es muy habitual quenle mandes todo fuera de hora tampoco te van a decir nada.

bmfranky 20-10-2024 15:30:07

El encadenamiento sera eterno...
 
Cita:

Empezado por jguarda (Mensaje 558438)
Yo en mi sistema, para componer el nro de factura me baso en el año, de esta manera, cada nuevo ejercicio o año, el programa comienza con el nro 1 de factura, xq la serie por asi decirlo cambia. es decir.


ejercicio 2024 -> 2024.XXXXX1 donde XXXXX1 es el nro de factura, comenzando por el nro. 1. en cada ejercicio.

ejercicio 2025 -> 2025.XXXXX1

ejercicio 2026 -> 2026.XXXXX1


¿ que ocurre entonces con el encadenamiento ?.


supongo que la primera factura de cada ejercicio nuevo, se envia sin encadenamiento no ?, por asi decirlo, es como si empezara desde cero o como lo habeis implementado vosotros ??


He visto algun programa, que el nro de factura siempre va creciendo, es decir, si llevase 6-7 años usándolo puede estar por un nro de factura enorme ... independiente del ejercicio, esto para mi supone un follon de tres pares ... cambiaria toda la lógica del programa con lo q eso supone.

Hola realmete podriais crear tablas de encadenamiento diferentes por año, pero tened en cuenta , que el primer encadenamiento, siempre sera el ultimo del año anterior, podeis por ejemplo verificar la fecha al crear el encadenamiento , si es posterior al 1 enero de año en curso y no exite la tabla "ENCADENAMIENTO2025" , usamos el untimo registro del año pasado como semilla y Lo guardamos como el primero de este año, asi evitamos llenar la tabla si hay demasiados registros.
Esto es personalmente lo que hago para guardar las facturas, asi siempre empiezo el año con el numero 1/AÑO, ademas que simplemente consulto el numero de registros de la tabla , para saber el numero de factura a asignar.
Tened tambien en cuenta , que se tiene que establecer el regitro numero 1 el dia que porfin entre en vigor la ley, ahunque esto es realmente obbio.

[email protected] 20-10-2024 15:42:36

Mensaje ERROR devuelto al encapsular el envio de una factura
 
Estoy intentado enviar el xml de ALTA DE FACTURA, ya no detecta errores, y al enviar ,

ESTAS SON LA PRIMERA LINEAS, SIN EL SOAP ENVELOPE

<sum:RegFactuSistemaFacturacion xmlns:sum="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd" xmlns:sum1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<sum1:Cabecera>
<sum1:ObligadoEmision>
la AEAT responde con :


ESTA ES LA RESPUESTA DE AEAT:

<?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Body><env:Fault><faultcode>env:Server</faultcode><faultstring>Codigo[1207].Se esperaba nodo {http://schemas.xmlsoap.org/soap/envelope/}Envelope y ha venido {https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd}RegFactuSistemaFacturacion</faultstring></env:Fault></env:Body></env:Envelope>



Despues de seguir vuestros consejos respecto a encapsular antes de enviar, lo hago y me responde como que tengo error en la huella. ??? :


ESTAS SON LAS LINEAS QUE HE AÑADIDO AL PRINCIPIO
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<sum:RegFactuSistemaFacturacion xmlns:sum="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd" xmlns:sum1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<sum1:Cabecera>


Y AL FINAL CIEERO LAS MISMAS

</sum:RegFactuSistemaFacturacion>
</soapenv:Body>
</soapenv:Envelope>

Y ESTA ES LA RESPUESTA DE LA AEAT:


<?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header/>
<env:Body Id="Body"><tikR:RespuestaRegFactuSistemaFacturacion xmlns:tik="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd" xmlns:tikR="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/RespuestaSuministro.xsd"><tikR:Cabecera><tik:ObligadoEmision><tik:NombreRazon>HECTOR RAFAEL RODRIGO SANCHEZ</tik:NombreRazon><tik:NIF>33461360V</tik:NIF></tik:ObligadoEmision></tikR:Cabecera><tikR:TiempoEsperaEnvio>60</tikR:TiempoEsperaEnvio><tikR:EstadoEnvio>Incorrecto</tikR:EstadoEnvio><tikR:RespuestaLinea><tikR:IDFactura><tik:IDEmisorFactura>33461360V</tik:IDEmisorFactura><tik:NumSerieFactura>2024</tik:NumSerieFactura><tik:FechaExpedicionFactura>15-10-2024</tik:FechaExpedicionFactura></tikR:IDFactura><tikR:Operacion><tik:TipoOperacion/></tikR:Operacion><tikR:EstadoRegistro>Incorrecto</tikR:EstadoRegistro><tikR:CodigoErrorRegistro>1100</tikR:CodigoErrorRegistro><tikR:DescripcionErrorRegistro>Valor o tipo incorrecto del campo.: Huella</tikR:DescripcionErrorRegistro></tikR:RespuestaLinea></tikR:RespuestaRegFactuSistemaFacturacion>
</env:Body></env:Envelope>


Alguien puede orientarme al respecto.

ermendalenda 20-10-2024 17:08:03

Cita:

Empezado por [email protected] (Mensaje 558443)
Estoy intentado enviar el xml de ALTA DE FACTURA, ya no detecta errores, y al enviar ,

ESTAS SON LA PRIMERA LINEAS, SIN EL SOAP ENVELOPE

<sum:RegFactuSistemaFacturacion xmlns:sum="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd" xmlns:sum1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<sum1:Cabecera>
<sum1:ObligadoEmision>
la AEAT responde con :


ESTA ES LA RESPUESTA DE AEAT:

<?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Body><env:Fault><faultcode>env:Server</faultcode><faultstring>Codigo[1207].Se esperaba nodo {http://schemas.xmlsoap.org/soap/envelope/}Envelope y ha venido {https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd}RegFactuSistemaFacturacion</faultstring></env:Fault></env:Body></env:Envelope>



Despues de seguir vuestros consejos respecto a encapsular antes de enviar, lo hago y me responde como que tengo error en la huella. ??? :


ESTAS SON LAS LINEAS QUE HE AÑADIDO AL PRINCIPIO
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<sum:RegFactuSistemaFacturacion xmlns:sum="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd" xmlns:sum1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<sum1:Cabecera>


Y AL FINAL CIEERO LAS MISMAS

</sum:RegFactuSistemaFacturacion>
</soapenv:Body>
</soapenv:Envelope>

Y ESTA ES LA RESPUESTA DE LA AEAT:


<?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header/>
<env:Body Id="Body"><tikR:RespuestaRegFactuSistemaFacturacion xmlns:tik="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd" xmlns:tikR="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/RespuestaSuministro.xsd"><tikR:Cabecera><tik:ObligadoEmision><tik:NombreRazon>HECTOR RAFAEL RODRIGO SANCHEZ</tik:NombreRazon><tik:NIF>33461360V</tik:NIF></tik:ObligadoEmision></tikR:Cabecera><tikR:TiempoEsperaEnvio>60</tikR:TiempoEsperaEnvio><tikR:EstadoEnvio>Incorrecto</tikR:EstadoEnvio><tikR:RespuestaLinea><tikR:IDFactura><tik:IDEmisorFactura>33461360V</tik:IDEmisorFactura><tik:NumSerieFactura>2024</tik:NumSerieFactura><tik:FechaExpedicionFactura>15-10-2024</tik:FechaExpedicionFactura></tikR:IDFactura><tikR:Operacion><tik:TipoOperacion/></tikR:Operacion><tikR:EstadoRegistro>Incorrecto</tikR:EstadoRegistro><tikR:CodigoErrorRegistro>1100</tikR:CodigoErrorRegistro><tikR:DescripcionErrorRegistro>Valor o tipo incorrecto del campo.: Huella</tikR:DescripcionErrorRegistro></tikR:RespuestaLinea></tikR:RespuestaRegFactuSistemaFacturacion>
</env:Body></env:Envelope>


Alguien puede orientarme al respecto.

Puedes estar enviando como primer registro sin encadenamiento? a mi eso me ha fallado y aun no sé por qué
Y revisa también que sea envel soap donde se definan los prefijos y no en el nodo de <RegFactu...

bmfranky 20-10-2024 17:42:12

Cita:

Empezado por ermendalenda (Mensaje 558444)
Puedes estar enviando como primer registro sin encadenamiento? a mi eso me ha fallado y aun no sé por qué
Y revisa también que sea envel soap donde se definan los prefijos y no en el nodo de <RegFactu...

Hola, es el primer registro, lo has tenido en cuenta al generar la huella, no has de consignar datos, solo poner primer registro.


Puede poner el registro completo, para revisarlo?

bmfranky 20-10-2024 18:30:30

Tiempo de respuesta
 
Bueno aun no estamos en produccion y ya empezamos con el royo.
Cita:

El canal de solicitud agotó el tiempo de espera mientras esperaba una respuesta después de 00:00:59.8814458. Aumente el valor de tiempo de espera pasado a la llamada a Request, o bien aumente el valor de SendTimeout en el enlace. El tiempo asignado a esta operación puede haber sido una parte de un tiempo de espera mayor.
Imagino que vosotros lo pondriais en una funcion que lo reenvie automatico en por ejemplo 10"?, Asignando incidencia y sin mas, yo voy a aprovechar pa rescatar las facturas proforma y provar el reenvio.

bmfranky 20-10-2024 19:32:18

Cita:

Empezado por bmfranky (Mensaje 558446)
Bueno aun no estamos en produccion y ya empezamos con el royo.

Imagino que vosotros lo pondriais en una funcion que lo reenvie automatico en por ejemplo 10"?, Asignando incidencia y sin mas, yo voy a aprovechar pa rescatar las facturas proforma y provar el reenvio.

Una hora mas tarde... Sigue sin poderse enviar nada, soy al unico que le pasa??

jguarda 20-10-2024 20:12:34

dudas
 
imaginate lo que va a pasar cuando mas de 4-5 millones de negocios, pyme, autonomos, grandes empresas, etc, empiezen a enviar simultáneamente todo a saco... jejeje


no se vá a poder vender, mis clientes me van a llamar cagandose en todo, y yo le diré que, apague el tpv y venda con la libreta, cada vez que repare un zapato, o venda un tarro de crema, o unos cordones, q se vayan a la delegación de hacienda más proxima, pida cita previa, y le entregue el papel con la venta...

ermendalenda 20-10-2024 20:44:05

Cita:

Empezado por jguarda (Mensaje 558450)
imaginate lo que va a pasar cuando mas de 4-5 millones de negocios, pyme, autonomos, grandes empresas, etc, empiezen a enviar simultáneamente todo a saco... jejeje


no se vá a poder vender, mis clientes me van a llamar cagandose en todo, y yo le diré que, apague el tpv y venda con la libreta, cada vez que repare un zapato, o venda un tarro de crema, o unos cordones, q se vayan a la delegación de hacienda más proxima, pida cita previa, y le entregue el papel con la venta...

Que no puedas enviar wn un momento dado no quiere decir que no puedas vender, tienes que enviar de manera asíncrona, es decir no tienes que esperara a que termine el envío,, lo tienes que poner en segundo plano, sobre todo por las incidencias que pueda haber.

[email protected] 20-10-2024 20:52:45

Cita:

Empezado por ermendalenda (Mensaje 558444)
Puedes estar enviando como primer registro sin encadenamiento? a mi eso me ha fallado y aun no sé por qué
Y revisa también que sea envel soap donde se definan los prefijos y no en el nodo de <RegFactu...


Código:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sum="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd" xmlns:sum1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<soapenv:Header/>
<soapenv:Body>
<sum:RegFactuSistemaFacturacion>
<sum1:Cabecera>
<sum1:ObligadoEmision>
<sum1:NombreRazon>HECTOR RAFAEL RODRIGO SANCHEZ</sum1:NombreRazon>
<sum1:NIF>33461360V</sum1:NIF>
</sum1:ObligadoEmision>
</sum1:Cabecera>
<sum:RegistroFactura>
<sum:RegistroAlta>
<sum1:IDVersion>1.0</sum1:IDVersion>
<sum1:IDFactura>
<sum1:IDEmisorFactura>33461360V</sum1:IDEmisorFactura>
<sum1:NumSerieFactura>2024</sum1:NumSerieFactura>
<sum1:FechaExpedicionFactura>15-10-2024</sum1:FechaExpedicionFactura>
</sum1:IDFactura>
<sum1:NombreRazonEmisor>HECTOR RAFAEL RODRIGO SANCHEZ</sum1:NombreRazonEmisor>
<sum1:TipoFactura>F1</sum1:TipoFactura>
<sum1:DescripcionOperacion>VENTA</sum1:DescripcionOperacion>
<sum1:Destinatarios>
<sum1:IDDestinatario>
<sum1:NombreRazon>VENTAS CONTADO</sum1:NombreRazon>
<sum1:NIF>19823568Y</sum1:NIF>
</sum1:IDDestinatario>
</sum1:Destinatarios>
<sum1:Desglose>
<sum1:DetalleDesglose>
<sum1:ClaveRegimen>01</sum1:ClaveRegimen>
<sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
<sum1:TipoImpositivo>21.00</sum1:TipoImpositivo>
<sum1:BaseImponibleOimporteNoSujeto>8.18</sum1:BaseImponibleOimporteNoSujeto>
<sum1:CuotaRepercutida>1.72</sum1:CuotaRepercutida>
</sum1:DetalleDesglose>
</sum1:Desglose>
<sum1:CuotaTotal>1.72</sum1:CuotaTotal>
<sum1:ImporteTotal>9.90</sum1:ImporteTotal>
<sum1:Encadenamiento>
<sum1:PrimerRegistro>S</sum1:PrimerRegistro>
</sum1:Encadenamiento>
<sum1:SistemaInformatico>
<sum1:NombreRazon>HECTOR RAFAEL RODRIGO SANCHEZ</sum1:NombreRazon>
<sum1:NIF>33461360V</sum1:NIF>
<sum1:NombreSistemaInformatico>GESTION COMERCIAL</sum1:NombreSistemaInformatico>
<sum1:IdSistemaInformatico>A1</sum1:IdSistemaInformatico>
<sum1:Version>5.1.531.1443</sum1:Version>
<sum1:NumeroInstalacion>001</sum1:NumeroInstalacion>
<sum1:TipoUsoPosibleSoloVerifactu>S</sum1:TipoUsoPosibleSoloVerifactu>
<sum1:TipoUsoPosibleMultiOT>N</sum1:TipoUsoPosibleMultiOT>
<sum1:IndicadorMultiplesOT>N</sum1:IndicadorMultiplesOT>
</sum1:SistemaInformatico>
<sum1:FechaHoraHusoGenRegistro>2024-10-19T10:01:06+02:00</sum1:FechaHoraHusoGenRegistro>
<sum1:TipoHuella>01</sum1:TipoHuella>
<sum1:Huella>8C4F00D6E814A06990BDA2F30CA26CE3 9D8C043767CFA0BD293436238793067A</sum1:Huella>
</sum:RegistroAlta>
</sum:RegistroFactura>
</sum:RegFactuSistemaFacturacion>
</soapenv:Body>
</soapenv:Envelope>

Despues de hacer los distintos cambios que me habeis indicado, sigue dando el mismo error : Valor o tipo incorrecto del campo.: Huella

<?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header/>
<env:Body Id="Body"><tikR:RespuestaRegFactuSistemaFacturacion xmlns:tik="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd" xmlns:tikR="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/RespuestaSuministro.xsd"><tikR:Cabecera><tik:ObligadoEmision><tik:NombreRazon>HECTOR RAFAEL RODRIGO SANCHEZ</tik:NombreRazon><tik:NIF>33461360V</tik:NIF></tik:ObligadoEmision></tikR:Cabecera><tikR:TiempoEsperaEnvio>60</tikR:TiempoEsperaEnvio><tikR:EstadoEnvio>Incorrecto</tikR:EstadoEnvio><tikR:RespuestaLinea><tikR:IDFactura><tik:IDEmisorFactura>33461360V</tik:IDEmisorFactura><tik:NumSerieFactura>2024</tik:NumSerieFactura><tik:FechaExpedicionFactura>15-10-2024</tik:FechaExpedicionFactura></tikR:IDFactura><tikR:Operacion><tik:TipoOperacion/></tikR:Operacion><tikR:EstadoRegistro>Incorrecto</tikR:EstadoRegistro><tikR:CodigoErrorRegistro>1100</tikR:CodigoErrorRegistro><tikR:DescripcionErrorRegistro>Valor o tipo incorrecto del campo.: Huella</tikR:DescripcionErrorRegistro></tikR:RespuestaLinea></tikR:RespuestaRegFactuSistemaFacturacion>
</env:Body></env:Envelope>

ermendalenda 20-10-2024 21:05:01

Cita:

Empezado por [email protected] (Mensaje 558452)
Código:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sum="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd" xmlns:sum1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<soapenv:Header/>
<soapenv:Body>
<sum:RegFactuSistemaFacturacion>
<sum1:Cabecera>
<sum1:ObligadoEmision>
<sum1:NombreRazon>HECTOR RAFAEL RODRIGO SANCHEZ</sum1:NombreRazon>
<sum1:NIF>33461360V</sum1:NIF>
</sum1:ObligadoEmision>
</sum1:Cabecera>
<sum:RegistroFactura>
<sum:RegistroAlta>
<sum1:IDVersion>1.0</sum1:IDVersion>
<sum1:IDFactura>
<sum1:IDEmisorFactura>33461360V</sum1:IDEmisorFactura>
<sum1:NumSerieFactura>2024</sum1:NumSerieFactura>
<sum1:FechaExpedicionFactura>15-10-2024</sum1:FechaExpedicionFactura>
</sum1:IDFactura>
<sum1:NombreRazonEmisor>HECTOR RAFAEL RODRIGO SANCHEZ</sum1:NombreRazonEmisor>
<sum1:TipoFactura>F1</sum1:TipoFactura>
<sum1:DescripcionOperacion>VENTA</sum1:DescripcionOperacion>
<sum1:Destinatarios>
<sum1:IDDestinatario>
<sum1:NombreRazon>VENTAS CONTADO</sum1:NombreRazon>
<sum1:NIF>19823568Y</sum1:NIF>
</sum1:IDDestinatario>
</sum1:Destinatarios>
<sum1:Desglose>
<sum1:DetalleDesglose>
<sum1:ClaveRegimen>01</sum1:ClaveRegimen>
<sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
<sum1:TipoImpositivo>21.00</sum1:TipoImpositivo>
<sum1:BaseImponibleOimporteNoSujeto>8.18</sum1:BaseImponibleOimporteNoSujeto>
<sum1:CuotaRepercutida>1.72</sum1:CuotaRepercutida>
</sum1:DetalleDesglose>
</sum1:Desglose>
<sum1:CuotaTotal>1.72</sum1:CuotaTotal>
<sum1:ImporteTotal>9.90</sum1:ImporteTotal>
<sum1:Encadenamiento>
<sum1:PrimerRegistro>S</sum1:PrimerRegistro>
</sum1:Encadenamiento>
<sum1:SistemaInformatico>
<sum1:NombreRazon>HECTOR RAFAEL RODRIGO SANCHEZ</sum1:NombreRazon>
<sum1:NIF>33461360V</sum1:NIF>
<sum1:NombreSistemaInformatico>GESTION COMERCIAL</sum1:NombreSistemaInformatico>
<sum1:IdSistemaInformatico>A1</sum1:IdSistemaInformatico>
<sum1:Version>5.1.531.1443</sum1:Version>
<sum1:NumeroInstalacion>001</sum1:NumeroInstalacion>
<sum1:TipoUsoPosibleSoloVerifactu>S</sum1:TipoUsoPosibleSoloVerifactu>
<sum1:TipoUsoPosibleMultiOT>N</sum1:TipoUsoPosibleMultiOT>
<sum1:IndicadorMultiplesOT>N</sum1:IndicadorMultiplesOT>
</sum1:SistemaInformatico>
<sum1:FechaHoraHusoGenRegistro>2024-10-19T10:01:06+02:00</sum1:FechaHoraHusoGenRegistro>
<sum1:TipoHuella>01</sum1:TipoHuella>
<sum1:Huella>8C4F00D6E814A06990BDA2F30CA26CE3 9D8C043767CFA0BD293436238793067A</sum1:Huella>
</sum:RegistroAlta>
</sum:RegistroFactura>
</sum:RegFactuSistemaFacturacion>
</soapenv:Body>
</soapenv:Envelope>

Despues de hacer los distintos cambios que me habeis indicado, sigue dando el mismo error : Valor o tipo incorrecto del campo.: Huella

<?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header/>
<env:Body Id="Body"><tikR:RespuestaRegFactuSistemaFacturacion xmlns:tik="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd" xmlns:tikR="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/RespuestaSuministro.xsd"><tikR:Cabecera><tik:ObligadoEmision><tik:NombreRazon>HECTOR RAFAEL RODRIGO SANCHEZ</tik:NombreRazon><tik:NIF>33461360V</tik:NIF></tik:ObligadoEmision></tikR:Cabecera><tikR:TiempoEsperaEnvio>60</tikR:TiempoEsperaEnvio><tikR:EstadoEnvio>Incorrecto</tikR:EstadoEnvio><tikR:RespuestaLinea><tikR:IDFactura><tik:IDEmisorFactura>33461360V</tik:IDEmisorFactura><tik:NumSerieFactura>2024</tik:NumSerieFactura><tik:FechaExpedicionFactura>15-10-2024</tik:FechaExpedicionFactura></tikR:IDFactura><tikR:Operacion><tik:TipoOperacion/></tikR:Operacion><tikR:EstadoRegistro>Incorrecto</tikR:EstadoRegistro><tikR:CodigoErrorRegistro>1100</tikR:CodigoErrorRegistro><tikR:DescripcionErrorRegistro>Valor o tipo incorrecto del campo.: Huella</tikR:DescripcionErrorRegistro></tikR:RespuestaLinea></tikR:RespuestaRegFactuSistemaFacturacion>
</env:Body></env:Envelope>

Si la has enviado tal y como se vé es normal que te tire un error, la huella solo puede contener caracteres HEXADECIMALES, observo un espacio o caracter no visible antes del intro, intenta poner la huella sin intros ni espacios.


La franja horaria es GMT +2. Ahora son las 18:27:20.

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