Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-02-2017
jlegido jlegido is offline
Miembro
NULL
 
Registrado: feb 2017
Posts: 17
Poder: 0
jlegido Va por buen camino
Hola angelhorse,

Yo tambien estoy haciendo este tema en VB.net (muy similar a c#), pero no consigo crear bien el archivo XML
Parto de la base de que el archivo XML a generar debe seguir el modelo cuyo ejemplo hay en SII_Descripcion_ServicioWeb_v0.5_es_es.pdf en apartado 8.1.1.1.Ejemplo mensaje de XML de alta.
Yo siguiendo las directrices de los compañeros de Delphi he adaptado su codigo (usando el ejemplo de seccion_31 que colgo WebServices AEAT Berlin_3.rar.
Lo hago usando este codigo (solo pongo parte)
Dim i As Long
Dim ASuministroLRFacturasEmitidas As SuministroLRFacturasEmitidas
Dim ARegistroLRFacturasEmitidas() As LRfacturasEmitidasType
'===========================================================================
'generacion info factura/s emitidas----------------------------------------------------------------
ASuministroLRFacturasEmitidas = New SuministroLRFacturasEmitidas()
ASuministroLRFacturasEmitidas.Cabecera = New CabeceraSii()

'DATOS Cabecera--------------------------------------------------------------------------
ASuministroLRFacturasEmitidas.Cabecera.IDVersionSii = ClienteSII1.VersionSiiType.Item05 '0.5 version actual del SII
ASuministroLRFacturasEmitidas.Cabecera.Titular = New PersonaFisicaJuridicaESType()
'Nombre del presentador
ASuministroLRFacturasEmitidas.Cabecera.Titular.NombreRazon = "Empresa XXX"
'el NIF del presentador (DEBE COINCIDIR CON EL CERTIFICADO SELECCIONADO)
ASuministroLRFacturasEmitidas.Cabecera.Titular.NIF = "A84532501"
'Tipo de comunicacion: ' A0 - ALTA ' A1- MODIFICACION ' A4- MODIFICACION REGIMEN VIAJEROS
ASuministroLRFacturasEmitidas.Cabecera.TipoComunicacion = ClaveTipoComunicacionType.A0
Etc. etc.
El problema es que no encuentro la forma de agregar la cabecera:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope .....> <soapenv:Header/>
Ademas en las etiquetas no hay forma de ponerle el namespace sii o siiLR
Que es imprescindible.

La pregunta es por tanto ¿Estoy usando el metodo adecuado y hay pasos que desconozco ¿ o deberia generear el XML manualmente a base de ir concatenado trozos de cadena y despues guardarlo como archivo?

¿Cómo lo has hecho tu?
Gracias de antemano por cualquier info que pueda dar luz al tema
Responder Con Cita
  #2  
Antiguo 28-02-2017
batuzail batuzail is offline
Miembro
 
Registrado: feb 2017
Posts: 57
Poder: 8
batuzail Va por buen camino
Hola,
Me estreno en el foro, yo estoy desarrollando con VB/C#

Os pego como lo hago yo para subir facturas emitidas, esta todo de prueba:
Tengo un bucle For para simular la generación varias facturas, me conecto sin problema y recibo resultado de cada uno de los registros.


Dim MensajeError As String = ""
Dim MensajeAcierto As String = ""
Dim sFactura As String = ""
Dim sRutaCert As String = ""
' Dim Mails As New LNclsMail
Dim decodedBytes As Byte()
decodedBytes = Convert.FromBase64String(My.Settings.ClaveCertificado)

Dim sClaveCert As String
sClaveCert = Encoding.UTF8.GetString(decodedBytes)

'Obtener certificado desde fichero p12
sRutaCert = System.AppDomain.CurrentDomain.BaseDirectory() & My.Settings.NombreCertificado
cert = New System.Security.Cryptography.X509Certificates.X509Certificate2(sRutaCert, sClaveCert)

'Se llama a la clase siiService, creada a partir del WS y cambiando el inherits por : Microsoft.Web.Services3.WebServicesClientProtocol
Dim webserviceProxy As New siiFacturasEmitidas
webserviceProxy.ClientCertificates.Add(cert)
Dim signatureToken As X509SecurityToken = GetSecurityToken()
Dim requestContext As SoapContext = webserviceProxy.RequestSoapContext

requestContext.Security.Tokens.Add(signatureToken)
Dim sig As New MessageSignature(signatureToken)
requestContext.Security.Timestamp.TtlInSeconds = 60
requestContext.Security.Elements.Add(sig)
Dim testC As New SuministroLRFacturasEmitidas
Dim cab As New CabeceraSii
Dim fac As New LRfacturasEmitidasType
Dim resul As RespuestaLRFEmitidasType
Dim perso As New PersonaFisicaJuridicaESType


perso.NIF = "XXXXXXXXX"
perso.NombreRazon = "Empresa de pruebas"
cab.Titular = perso

cab.TipoComunicacion = "0"

testC.Cabecera = cab

For i = 20 To 30
Dim fras As New LRfacturasEmitidasType
Dim perio As New RegistroSiiPeriodoImpositivo
perio.Ejercicio = 2015
perio.Periodo = "01"
fras.PeriodoImpositivo = perio

Dim idfra As New IDFacturaExpedidaType
Dim empresa As New IDFacturaExpedidaTypeIDEmisorFactura

Dim cver As New VersionSiiType

cab.IDVersionSii = cver.Item05

empresa.NIF = "XXXXXXXXXXX"
idfra.IDEmisorFactura = empresa
idfra.NumSerieFacturaEmisor = i + 10
idfra.FechaExpedicionFacturaEmisor = "15-01-2015"
fras.IDFactura = idfra


Dim fraexp As New FacturaExpedidaType

fraexp.TipoFactura = "1"
fraexp.ClaveRegimenEspecialOTrascendencia = "01"
fraexp.ImporteTotal = "26.70"
fraexp.DescripcionOperacion = "Compra xxxxxxxxx"

fras.FacturaExpedida = fraexp
Dim persona As New PersonaFisicaJuridicaType

persona.NombreRazon = "Empresa yyyyyyy"
persona.NIFRepresentante = "94235500B"

Dim contrap As New PersonaFisicaJuridicaType
contrap = persona


Dim sujeta As New SujetaType
Dim sujetanoexenta As New SujetaTypeNoExenta
Dim detalleiva As New DetalleIVAEmitidaType
Dim tpdesglose As New TipoSinDesgloseType
Dim desglose As New FacturaExpedidaTypeTipoDesglose

sujetanoexenta.TipoNoExenta = sujetanoexenta.TipoNoExenta.S1

ReDim sujetanoexenta.DesgloseIVA(0)
detalleiva.TipoImpositivo = "21"
detalleiva.BaseImponible = "22.07"
detalleiva.CuotaRepercutida = "4.63"
detalleiva.TipoRecargoEquivalencia = 0
detalleiva.CuotaRecargoEquivalencia = 0

sujetanoexenta.DesgloseIVA(0) = detalleiva
sujeta.NoExenta = sujetanoexenta
tpdesglose.Sujeta = sujeta

desglose.Item = tpdesglose

fraexp.TipoDesglose = desglose

Dim cfra As New LRConsultaEmitidasType
Dim cfil As New LRFiltroEmitidasType
Dim ccla As New IDFacturaExpedidaBCType
Dim cempr As New IDFacturaExpedidaBCTypeIDEmisorFactura
Dim ccab As New CabeceraConsultaSii
Dim cper As New PersonaFisicaJuridicaUnicaESType
Dim cperio As New RegistroSiiPeriodoImpositivo
Dim cperio2 As New RegistroSiiPeriodoImpositivo

ccla.FechaExpedicionFacturaEmisor = "15-01-2015"
cempr.NIF = "XXXXXXXXX"

ccla.IDEmisorFactura = cempr

ccla.NumSerieFacturaEmisor = "1"
cfil.ClavePaginacion = ccla
cperio.Ejercicio = 2015
cperio2.Ejercicio = 2015
cperio2.Periodo = "01"
cfil.PeriodoImpositivo = cperio2
cfra.FiltroConsulta = cfil
cfra.FiltroConsulta.ClavePaginacion = ccla


ReDim Preserve testC.RegistroLRFacturasEmitidas(i)
testC.RegistroLRFacturasEmitidas(i) = fras
Next i

resul = webserviceProxy.SuministroLRFacturasEmitidas(testC)
Responder Con Cita
  #3  
Antiguo 28-02-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bienvenido a clubdelphi, como siempre aconsejamos a los nuevos, no olvides leer nuestra guía de estilo, gracias por tu colaboración


Recuerda poner los tags al código fuente, ejemplo:



Gracias
Responder Con Cita
  #4  
Antiguo 28-02-2017
jlegido jlegido is offline
Miembro
NULL
 
Registrado: feb 2017
Posts: 17
Poder: 0
jlegido Va por buen camino
Cita:
Empezado por batuzail Ver Mensaje
Hola,
Me estreno en el foro, yo estoy desarrollando con VB/C#

Os pego como lo hago yo para subir facturas emitidas, esta todo de prueba:
Tengo un bucle For para simular la generación varias facturas, me conecto sin problema y recibo resultado de cada uno de los registros.


Dim MensajeError As String = ""
Dim MensajeAcierto As String = ""
Dim sFactura As String = ""
Dim sRutaCert As String = ""
' Dim Mails As New LNclsMail
Dim decodedBytes As Byte()
decodedBytes = Convert.FromBase64String(My.Settings.ClaveCertificado)

Dim sClaveCert As String
sClaveCert = Encoding.UTF8.GetString(decodedBytes)

'Obtener certificado desde fichero p12
sRutaCert = System.AppDomain.CurrentDomain.BaseDirectory() & My.Settings.NombreCertificado
cert = New System.Security.Cryptography.X509Certificates.X509Certificate2(sRutaCert, sClaveCert)

'Se llama a la clase siiService, creada a partir del WS y cambiando el inherits por : Microsoft.Web.Services3.WebServicesClientProtocol
Dim webserviceProxy As New siiFacturasEmitidas
webserviceProxy.ClientCertificates.Add(cert)
Dim signatureToken As X509SecurityToken = GetSecurityToken()
Dim requestContext As SoapContext = webserviceProxy.RequestSoapContext

requestContext.Security.Tokens.Add(signatureToken)
Dim sig As New MessageSignature(signatureToken)
requestContext.Security.Timestamp.TtlInSeconds = 60
requestContext.Security.Elements.Add(sig)
Dim testC As New SuministroLRFacturasEmitidas
Dim cab As New CabeceraSii
Dim fac As New LRfacturasEmitidasType
Dim resul As RespuestaLRFEmitidasType
Dim perso As New PersonaFisicaJuridicaESType


perso.NIF = "XXXXXXXXX"
perso.NombreRazon = "Empresa de pruebas"
cab.Titular = perso

cab.TipoComunicacion = "0"

testC.Cabecera = cab

For i = 20 To 30
Dim fras As New LRfacturasEmitidasType
Dim perio As New RegistroSiiPeriodoImpositivo
perio.Ejercicio = 2015
perio.Periodo = "01"
fras.PeriodoImpositivo = perio

Dim idfra As New IDFacturaExpedidaType
Dim empresa As New IDFacturaExpedidaTypeIDEmisorFactura

Dim cver As New VersionSiiType

cab.IDVersionSii = cver.Item05

empresa.NIF = "XXXXXXXXXXX"
idfra.IDEmisorFactura = empresa
idfra.NumSerieFacturaEmisor = i + 10
idfra.FechaExpedicionFacturaEmisor = "15-01-2015"
fras.IDFactura = idfra


Dim fraexp As New FacturaExpedidaType

fraexp.TipoFactura = "1"
fraexp.ClaveRegimenEspecialOTrascendencia = "01"
fraexp.ImporteTotal = "26.70"
fraexp.DescripcionOperacion = "Compra xxxxxxxxx"

fras.FacturaExpedida = fraexp
Dim persona As New PersonaFisicaJuridicaType

persona.NombreRazon = "Empresa yyyyyyy"
persona.NIFRepresentante = "94235500B"

Dim contrap As New PersonaFisicaJuridicaType
contrap = persona


Dim sujeta As New SujetaType
Dim sujetanoexenta As New SujetaTypeNoExenta
Dim detalleiva As New DetalleIVAEmitidaType
Dim tpdesglose As New TipoSinDesgloseType
Dim desglose As New FacturaExpedidaTypeTipoDesglose

sujetanoexenta.TipoNoExenta = sujetanoexenta.TipoNoExenta.S1

ReDim sujetanoexenta.DesgloseIVA(0)
detalleiva.TipoImpositivo = "21"
detalleiva.BaseImponible = "22.07"
detalleiva.CuotaRepercutida = "4.63"
detalleiva.TipoRecargoEquivalencia = 0
detalleiva.CuotaRecargoEquivalencia = 0

sujetanoexenta.DesgloseIVA(0) = detalleiva
sujeta.NoExenta = sujetanoexenta
tpdesglose.Sujeta = sujeta

desglose.Item = tpdesglose

fraexp.TipoDesglose = desglose

Dim cfra As New LRConsultaEmitidasType
Dim cfil As New LRFiltroEmitidasType
Dim ccla As New IDFacturaExpedidaBCType
Dim cempr As New IDFacturaExpedidaBCTypeIDEmisorFactura
Dim ccab As New CabeceraConsultaSii
Dim cper As New PersonaFisicaJuridicaUnicaESType
Dim cperio As New RegistroSiiPeriodoImpositivo
Dim cperio2 As New RegistroSiiPeriodoImpositivo

ccla.FechaExpedicionFacturaEmisor = "15-01-2015"
cempr.NIF = "XXXXXXXXX"

ccla.IDEmisorFactura = cempr

ccla.NumSerieFacturaEmisor = "1"
cfil.ClavePaginacion = ccla
cperio.Ejercicio = 2015
cperio2.Ejercicio = 2015
cperio2.Periodo = "01"
cfil.PeriodoImpositivo = cperio2
cfra.FiltroConsulta = cfil
cfra.FiltroConsulta.ClavePaginacion = ccla


ReDim Preserve testC.RegistroLRFacturasEmitidas(i)
testC.RegistroLRFacturasEmitidas(i) = fras
Next i

resul = webserviceProxy.SuministroLRFacturasEmitidas(testC)

Hola batuzail,
Hay 3 formas de crear el xml a enviar a AEAT-SII:
-forma1: mediante cadenas de texto concatenadas
-forma2: usando XmlReader, XmlWriter y otras clases asociadas
-forma3: usando las clases generadas al crear el proxy con wsdl.exe en .NET.

Yo estoy trabajando en la forma 3 y mi codigo es muy parecido al tuyo (el tuyo es mas elegante y compacto), pero en ambos casos tenemos un problema sin resolver, que es poner el elemento raiz, o sea:
<soapenv:Envelope xmlns:soapenv="...//schemas.xmlsoap.org/soap/envelope/" xmlns:siiLR="...://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd" xmlns:sii="...://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">

Y ademas que todas las etiquetas tienen que llevar su espacio de nombres y su nombre, por ejemplo:
<siiLR:SuministroLRFacturasEmitidas>
<sii:Cabecera>
<sii:IDVersionSii>
Etc.
Al menos según los ejemplos que pone Hacienda en el pdf “ SII_Descripcion_ServicioWeb_v0.5_es_es.pdf”, en el apartado 8.1.1.1.Ejemplo mensaje de XML de alta, por lo que entiendo que sera obligatorio

Yo he cogido tu codigo y le he añadido antes de la ultima linea, las siguientes lineas para ver el xml generaro
'ANEXO/INCISO: Serializacion a XML
'forma 1: por Consola en Ventana Resultados
Código Delphi [-]
      Dim ser As System.Xml.Serialization.XmlSerializer
      ser = New System.Xml.Serialization.XmlSerializer(testC.GetType())
      ser.Serialize(Console.Out, testC)
      resul = webserviceProxy.SuministroLRFacturasEmitidas(testC)
el resultado aparece en la ventana Resultados y podras ver que no tiene la cabecera que piden, ni las etiquetas cumplen con el disñeo <espacioNombres:nombreEtiqueta>

No se si lo que digo es correcto o no importa, aunque yo creo que si. Voy a seguir investigando, dentro de la forma 3 a ver si lo consigo. Si descubres algo, ya diras.

Otra duda gorda:
Yo tengo la clase siiService tal que asi
Código Delphi [-]
Partial Public Class siiService
    Inherits System.Web.Services.Protocols.SoapHttpClientProtocol
Pero tu dices que hay que cambiarla a esto 
Partial Public Class siiService
    Inherits Microsoft.Web.Services3.WebServicesClientProtocol
¿Por que? ¿cual es la utilidad o ventaja?

Muchas gracias por tu aporte y tu info

Última edición por jlegido fecha: 28-02-2017 a las 19:03:17. Razón: Por que han sido borrados dos partes del codigo
Responder Con Cita
  #5  
Antiguo 01-03-2017
batuzail batuzail is offline
Miembro
 
Registrado: feb 2017
Posts: 57
Poder: 8
batuzail Va por buen camino
Hola jlegido,
A mi me funciona correctamente y envío los registros y recibo un csv válido y en caso de error recibo el error, también me funciona la consulta en caso de consultar una factura ya emitida. No se a que te refieres con añadir los datos de cabecera, puede que sea algo que al pasarlo a xml no hace.
Sobre mi clase
Código:
Partial Public Class siiService     Inherits Microsoft.Web.Services3.WebServicesClientProtocol
La tengo así para que funcione el acceso al WS con el certificado.

Saludos
Responder Con Cita
  #6  
Antiguo 01-03-2017
jlegido jlegido is offline
Miembro
NULL
 
Registrado: feb 2017
Posts: 17
Poder: 0
jlegido Va por buen camino
Cita:
Empezado por batuzail Ver Mensaje
Hola jlegido,
A mi me funciona correctamente y envío los registros y recibo un csv válido y en caso de error recibo el error, también me funciona la consulta en caso de consultar una factura ya emitida. No se a que te refieres con añadir los datos de cabecera, puede que sea algo que al pasarlo a xml no hace.
Sobre mi clase
Código:
Partial Public Class siiService     Inherits Microsoft.Web.Services3.WebServicesClientProtocol
La tengo así para que funcione el acceso al WS con el certificado.

Saludos

Hola batuzail,
Ante todo muchas gracias por tu rapida respuesta, que creo me es de bastante utilidad y me quita un peso de encima.

Yo me referia a que al enviar el contenido xml, este debe tener, antes de los nodos de datos, lo siguiente:

Código:
<?xml version="1.0" encoding="UTF-8"?> 
<soapenv:Envelope xmlns:soapenv="htp://schemas.xmlsoap.org/soap/envelope/" xmlns:siiLR="htps://ww2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd" xmlns:sii="htps://ww2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">
Y este contenido no me sale cuando lo grabo en disco o lo displayo por consola.

De todas formas, lo fundamental es QUE A TI, CON EL CODIGO QUE PUSISTE AQUÍ EN EL FORO, TE FUNCIONA PERFECTAMENTE, con lo cual doy por hecho:
1) Que tu solucion es buena (por que, ademas la has probado incluso con certificado)
2) Que esa cabecera a lo mejor no es necesaria, o al enviar el mensaje a la AEAT-SII se genera implicitamente

Me queda tambien muy claro el uso de:
Código:
Public Class siiService     Inherits Microsoft.Web.Services3.WebServicesClientProtocol,
Asi que la cambiare la mia, pues he de usar ceriificado

Saludos
Responder Con Cita
  #7  
Antiguo 27-03-2017
jcaceres121 jcaceres121 is offline
Registrado
NULL
 
Registrado: mar 2017
Posts: 1
Poder: 0
jcaceres121 Va por buen camino
Hola.
Aunque se que este club es de Delphi, estoy intentando crear una solución en Java para el problema. Tengo alguna experiencia con Java y ninguna con webservices.
He visto tu código .NET, que es quizá lo más parecido a Java que he encontrado por ahí, pero me surgen dudas.
Lamento no haber encontrado ningún foro de Java y por eso me veo obligado a preguntar aquí.
Os comento mi situación.
Tengo ya creado una objeto SuministroLRFacturasEmitidas (supongo que correctamente) que contiene una factura de ejemplo, y también tengo un objeto X509Certificate con un certificado obtenido a partir de un fichero .PFX.
Entiendo que sólo me quedaría invocar a los métodos necesarios para enviar el objeto y recibir la respuesta, pero no se como.
Si alguien pudiera ayudarme, estaría muy agradecido. levo muchas horas con esto y no avanzo.
Gracias
Responder Con Cita
  #8  
Antiguo 27-03-2017
CMB CMB is offline
Miembro
 
Registrado: ene 2017
Posts: 349
Poder: 8
CMB Va por buen camino
Cita:
Empezado por jcaceres121 Ver Mensaje
Hola.
Aunque se que este club es de Delphi
Efectivamente, el foro es sólo de Delphi pero en este hilo están participando programadores de otros varios lenguajes. Bienvenidos, creo que nadie estorba. Pero no sólo existe esta división. También está el grupo que prefiere crear primero su propio XML y luego enviarlo por los varios medios que existen, y otro sector, que parece mayoritario, que manda la información creándola sobre la marcha mediante el uso de las funciones de los WSDL. Quizás por este motivo seguir el hilo sea algo complicado y en algunos momentos desorienta.

Pero lo importante es que todos hemos aprendido bastante.

Muchas gracias a los que habeis aportado ideas y código.

Saludos,
Responder Con Cita
  #9  
Antiguo 29-03-2017
vboloradito vboloradito is offline
Miembro
NULL
 
Registrado: mar 2017
Posts: 107
Poder: 8
vboloradito Va por buen camino
Sii vs modulo 340

Hola:
Soy nuevo en el foro.
Tenemos que empezar con sii y todavia no sabemos en que lo vamos a hacer.
no se si llegamos tarde.
La pregunta es.
- ¿La información para el SII la estais encontrando en la que ya teneis para el modulo 340?.
- Habeis pensado en implementar alguna validación contra SII.
ejemplo. cuento cuanta facutaras tengo en mi sistema el dia 1/03/2017 (y me dice 3454 por 1.345 Euros)
lanzar consultar al SII para ver si realmente tengo 345 facturas por un total de 1.345 euros)
O simplemente os vais a fiar de que el SII os ha dicho que la factura esta correctamente enviada.
Responder Con Cita
  #10  
Antiguo 29-03-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.471
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por vboloradito Ver Mensaje
Hola:
Soy nuevo en el foro.
Tenemos que empezar con sii y todavia no sabemos en que lo vamos a hacer.
no se si llegamos tarde.
La pregunta es.
- ¿La información para el SII la estais encontrando en la que ya teneis para el modulo 340?.
- Habeis pensado en implementar alguna validación contra SII.
ejemplo. cuento cuanta facutaras tengo en mi sistema el dia 1/03/2017 (y me dice 3454 por 1.345 Euros)
lanzar consultar al SII para ver si realmente tengo 345 facturas por un total de 1.345 euros)
O simplemente os vais a fiar de que el SII os ha dicho que la factura esta correctamente enviada.
El SII te da un resultado por cada uno de los documentos que envías indicando si se ha enviado correctamente, enviado con errores o no enviado. Para mi si el SII te ha dicho que un documento está enviado de forma correcta y te da un identificador ya me vale. Yo lo que hago es marcar el resultado en cada uno de los documentos y así controlo los que están pendientes de envío totalmente o enviado con errores para poder corregirlos y volverlos a enviar. Los ya enviados los ignoro "for ever".

Saludos
__________________
Be water my friend.
Responder Con Cita
  #11  
Antiguo 29-03-2017
vboloradito vboloradito is offline
Miembro
NULL
 
Registrado: mar 2017
Posts: 107
Poder: 8
vboloradito Va por buen camino
Cobros en metálico recibido end_point

Hola:

Estoy validando todos los ejemplos de xml de SII usando directamente la web de aeat.

Me funcionan todos excepto los de cobros : (8.1.5. Alta de Cobros en metálico)
uso el end_point : /wlpl/SSII-FACT/ws/fr/SiiFactPAGV1SOAP

y recibo el error.
<faultstring>Codigo[4124].Error La direccion no se corresponde con el fichero de entrada.</faultstring>

aunque en otras ocasiones el error devuelto era:
<faultstring>403.No autorizado</faultstring>

¿alquien tiene un xml correcto con su correspondiente end_point?
gracias

Código:
<soapenv:Envelope>
 <soapenv:Header/>
<soapenv:Body>
<!-- Alta de Cobros en metálico recibido
 -->
<!-- /wlpl/SSII-FACT/ws/fr/SiiFactPAGV1SOAP
 -->
<siiLR:SuministroLRCobrosMetalico>
<sii:Cabecera>
 <sii:IDVersionSii>0.6</sii:IDVersionSii>
<sii:Titular>
 <sii:NombreRazon>Mi_nombrel</sii:NombreRazon>
 <sii:NIF>MI_numero_NIF</sii:NIF>
 </sii:Titular>
 <sii:TipoComunicacion>A0</sii:TipoComunicacion>
 </sii:Cabecera>
<siiLR:RegistroLRCobrosMetalico>
<sii:PeriodoImpositivo>
 <sii:Ejercicio>2017</sii:Ejercicio>
 <sii:Periodo>0A</sii:Periodo>
 </sii:PeriodoImpositivo>
<siiLR:Contraparte>
 <sii:NombreRazon>LA_OTRA_EMPRESA</sii:NombreRazon>
 <sii:NIF>NIF_OTRA_EMPRESA</sii:NIF>
 </siiLR:Contraparte>
 <siiLR:ImporteTotal>6130.56</siiLR:ImporteTotal>
 </siiLR:RegistroLRCobrosMetalico>
 </siiLR:SuministroLRCobrosMetalico>
 </soapenv:Body>
 </soapenv:Envelope>
Responder Con Cita
  #12  
Antiguo 29-03-2017
PepCat PepCat is offline
Miembro
 
Registrado: mar 2017
Posts: 96
Poder: 8
PepCat Va por buen camino
Cita:
Empezado por vboloradito Ver Mensaje
Hola:

Estoy validando todos los ejemplos de xml de SII usando directamente la web de aeat.

Me funcionan todos excepto los de cobros : (8.1.5. Alta de Cobros en metálico)
uso el end_point : /wlpl/SSII-FACT/ws/fr/SiiFactPAGV1SOAP
yo para las pruebas "https://www7.aeat.es/wlpl/SSII-FACT/ws/pm/SiiFactCMV1SOAP" y funciona correctamente.
Responder Con Cita
  #13  
Antiguo 30-03-2017
robinsondemantu robinsondemantu is offline
Miembro
NULL
 
Registrado: mar 2017
Posts: 10
Poder: 0
robinsondemantu Va por buen camino
Endpoint incorrecto

Cita:
Empezado por vboloradito Ver Mensaje
Hola:

Estoy validando todos los ejemplos de xml de SII usando directamente la web de aeat.

Me funcionan todos excepto los de cobros : (8.1.5. Alta de Cobros en metálico)
uso el end_point : /wlpl/SSII-FACT/ws/fr/SiiFactPAGV1SOAP

y recibo el error.
<faultstring>Codigo[4124].Error La direccion no se corresponde con el fichero de entrada.</faultstring>

aunque en otras ocasiones el error devuelto era:
<faultstring>403.No autorizado</faultstring>

¿alquien tiene un xml correcto con su correspondiente end_point?
gracias

Código:
<soapenv:Envelope>
 <soapenv:Header/>
<soapenv:Body>
<!-- Alta de Cobros en metálico recibido
 -->
<!-- /wlpl/SSII-FACT/ws/fr/SiiFactPAGV1SOAP
 -->
<siiLR:SuministroLRCobrosMetalico>
<sii:Cabecera>
 <sii:IDVersionSii>0.6</sii:IDVersionSii>
<sii:Titular>
 <sii:NombreRazon>Mi_nombrel</sii:NombreRazon>
 <sii:NIF>MI_numero_NIF</sii:NIF>
 </sii:Titular>
 <sii:TipoComunicacion>A0</sii:TipoComunicacion>
 </sii:Cabecera>
<siiLR:RegistroLRCobrosMetalico>
<sii:PeriodoImpositivo>
 <sii:Ejercicio>2017</sii:Ejercicio>
 <sii:Periodo>0A</sii:Periodo>
 </sii:PeriodoImpositivo>
<siiLR:Contraparte>
 <sii:NombreRazon>LA_OTRA_EMPRESA</sii:NombreRazon>
 <sii:NIF>NIF_OTRA_EMPRESA</sii:NIF>
 </siiLR:Contraparte>
 <siiLR:ImporteTotal>6130.56</siiLR:ImporteTotal>
 </siiLR:RegistroLRCobrosMetalico>
 </siiLR:SuministroLRCobrosMetalico>
 </soapenv:Body>
 </soapenv:Envelope>

Estás enviado un cobro a los pagos. La URL correcta del enpoint de cobros es: https://www7.aeat.es/wlpl/SSII-FACT/...iFactCOBV1SOAP
Responder Con Cita
  #14  
Antiguo 29-03-2017
Guinfly Guinfly is offline
Registrado
NULL
 
Registrado: nov 2012
Posts: 1
Poder: 0
Guinfly Va por buen camino
Selecccionar un Valor de la lista SuministroFactEmitidas.CountryType2

Tengo la siguiente duda, a ver si alguien me puede echar un cable.
En mi BD dispongo del código ISO de todos los paises, es decir, de todos los pases cuyo código corresponde con la lista SuministroFactEmitidas.CountryType2.
El problema es que no soy capaz de indicar en el registro FacturaExpedida.Contraparte.IDOtro.CodigoPais el código de pais, me explico.
No puedo indicar lo siguiente V_FACEMI_SII[i].FacturaExpedida.Contraparte.IDOtro.CodigoPais := 'DE'
Para hacerlo correctamente debo indicarlo así V_FACEMI_SII[i].FacturaExpedida.Contraparte.IDOtro.CodigoPais := SuministroFactEmitidas.CountryType2(2).
Pero para esto necesito saber que posición ocupa el pais del cliente en la lista de constantes SuministroFactEmitidas.CountryType2.
Como habéis resuelto este tema?
Existe alguna forma de indicarle SuministroFactEmitidas.CountryType2("La posición que ocupe el pais DE")?

Quedo a la espera de vuestras noticias.
Muchisimas Gracias por adelantado.
Responder Con Cita
  #15  
Antiguo 09-05-2017
josecarrillo josecarrillo is offline
Miembro
 
Registrado: may 2014
Posts: 13
Poder: 0
josecarrillo Va por buen camino
Cita:
Empezado por Guinfly Ver Mensaje
Tengo la siguiente duda, a ver si alguien me puede echar un cable.
En mi BD dispongo del código ISO de todos los paises, es decir, de todos los pases cuyo código corresponde con la lista SuministroFactEmitidas.CountryType2.
El problema es que no soy capaz de indicar en el registro FacturaExpedida.Contraparte.IDOtro.CodigoPais el código de pais, me explico.
No puedo indicar lo siguiente V_FACEMI_SII[i].FacturaExpedida.Contraparte.IDOtro.CodigoPais := 'DE'
Para hacerlo correctamente debo indicarlo así V_FACEMI_SII[i].FacturaExpedida.Contraparte.IDOtro.CodigoPais := SuministroFactEmitidas.CountryType2(2).
Pero para esto necesito saber que posición ocupa el pais del cliente en la lista de constantes SuministroFactEmitidas.CountryType2.
Como habéis resuelto este tema?
Existe alguna forma de indicarle SuministroFactEmitidas.CountryType2("La posición que ocupe el pais DE")?

Quedo a la espera de vuestras noticias.
Muchisimas Gracias por adelantado.
Yo tengo este mismo problema alguien lo ha resuelto.
Responder Con Cita
  #16  
Antiguo 09-05-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.030
Poder: 22
keys Va por buen camino
La unica forma que creo que existe es hacerte una función de retorne el numero que ocupa cada pais. Igual que para el resto de listas que hay que sumistrar, tipo facturas, etcc ya que no quieren un dato sino un índice de una tabla.

Código Delphi [-]
if CODPAIS = 'AF' then
   result := 0
 else if CODPAIS = 'AX' then result := 1
  else if CODPAIS = 'AL' then result := 2
   else if CODPAIS = 'DZ' then result := 3
    else if CODPAIS = 'AS' then result := 4
     else if CODPAIS = 'AD' then result := 5
      else if CODPAIS = 'AO' then result := 6
 etccc.

Por cierto esperate a la version 7 por que han cambiado la lista de paises.
Responder Con Cita
  #17  
Antiguo 16-05-2017
APO APO is offline
Miembro
 
Registrado: feb 2008
Posts: 121
Poder: 17
APO Va por buen camino
Cita:
Empezado por keys Ver Mensaje
La unica forma que creo que existe es hacerte una función de retorne el numero que ocupa cada pais. Igual que para el resto de listas que hay que sumistrar, tipo facturas, etcc ya que no quieren un dato sino un índice de una tabla.

Código Delphi [-]
if CODPAIS = 'AF' then
   result := 0
 else if CODPAIS = 'AX' then result := 1
  else if CODPAIS = 'AL' then result := 2
   else if CODPAIS = 'DZ' then result := 3
    else if CODPAIS = 'AS' then result := 4
     else if CODPAIS = 'AD' then result := 5
      else if CODPAIS = 'AO' then result := 6
 etccc.

Por cierto esperate a la version 7 por que han cambiado la lista de paises.

Se puede hacer de manera directa, sin tener que preocuparnos por si cambian sus códigos internos de países o lo que sea. Por ejemplo, si quisiéramos asignar el país Francia, teniendo el código ISO (FR), sería de esta manera:

Código Delphi [-]
ARegistroLRFacturasEmitidas[ContadorFra].FacturaExpedida.Contraparte.IDOtro.CodigoPais:=SuministroFactEmitidas.CountryType2(GetEnumValue(Typ  eInfo(CountryType2),'ES'));

Si el GetEnumValue lo podemos utilizar en todos los otros tipos de campo
Responder Con Cita
  #18  
Antiguo 09-05-2017
PepCat PepCat is offline
Miembro
 
Registrado: mar 2017
Posts: 96
Poder: 8
PepCat Va por buen camino
Cita:
Empezado por josecarrillo Ver Mensaje
Yo tengo este mismo problema alguien lo ha resuelto.
Mira el post #721 y #725
Responder Con Cita
  #19  
Antiguo 09-05-2017
smiron smiron is offline
Registrado
NULL
 
Registrado: may 2017
Posts: 4
Poder: 0
smiron Va por buen camino
Yo uso el nif/cif intracomunitario, los 2 primeros digitos coinciden con el codigo pais...
Responder Con Cita
  #20  
Antiguo 09-05-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.030
Poder: 22
keys Va por buen camino
Cita:
Empezado por PepCat Ver Mensaje
Mira el post #721 y #725
Más elegante, pero en el fondo lo mismo. Hay que coger el orden de los paises de las clases que se generan con los xsd de hacienda. y como ya he dicho ojo que van a cambiar en la siguiente versión.
Responder Con Cita
Respuesta



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

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
TICKET BAI (TicketBAI); Nuevo sistema de la Agencia Tributaria del Pais Vasco keys Internet 4170 Hace 1 Semana 17:29:05
AEAT envio de datos vía Webservice problemas con WSDL CelsoO Internet 11 09-10-2019 20:03:41
webService Soap de la Administración Digital Española notific@ apicito Internet 3 31-01-2017 11:25:28
Error en Webservice funcion envio de sms webmasterplc Delphi para la web 5 25-07-2013 20:10:29
Problemas con envío de XML a un WebService davidvamo Internet 1 13-02-2007 15:49:20


La franja horaria es GMT +2. Ahora son las 07:39:38.


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