LOCAL loXml
LOCAL lcSoapRequestBody
LOCAL lcEndpoint
LOCAL lcSoapAction
LOCAL lcContentType
LOCAL loHttp
LOCAL loResp
LOCAL loResponseXml
LOCAL lnStatusCode
LOCAL lcCSV
LOCAL lcNIFPresentador
LOCAL lcTimestampPresentacion
LOCAL lcCabecera
LOCAL lcTiempoEsperaEnvio
LOCAL lcEstadoEnvio
LOCAL lcIDEmisorFactura
LOCAL lcNumSerieFactura
LOCAL lcFechaExpedicionFactura
LOCAL lcEstadoRegistro
LOCAL lcCodigoErrorRegistro
LOCAL lcDescripcionErrorRegistro
LOCAL lcCSVRegistroDuplicado
LOCAL lcEstadoRegistroDuplicado
* For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Xml')
loXml = CreateObject('Chilkat.Xml')
loXml.Tag = "soapenv:Envelope"
loXml.AddAttribute("xmlns:soapenv","http://schemas.xmlsoap.org/soap/envelope/")
loXml.AddAttribute("xmlns:ds","http://www.w3.org/2000/09/xmldsig#")
loXml.AddAttribute("xmlns:sfLR","https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd")
loXml.AddAttribute("xmlns:sf","https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd")
loXml.UpdateChildContent("soapenv:Header","")
loXml.UpdateChildContent("soapenv:Body|sfLR:RegFactuSistemaFacturacion","?<sfLR:RegistroFactura><sfLR:RegistroAlta><sf:IDVersion>1.0</sf:IDVersion><sf:IDFactura><sf:IDEmisorFactura>string</sf:IDEmisorFactura><sf:NumSerieFactura>string</sf:NumSerieFactura><sf:FechaExpedicionFactura>string</sf:FechaExpedicionFactura></sf:IDFactura><sf:RefExterna>string</sf:RefExterna><sf:NombreRazonEmisor>string</sf:NombreRazonEmisor><sf:Subsanacion>S</sf:Subsanacion><sf:RechazoPrevio>N</sf:RechazoPrevio><sf:TipoFactura>F1</sf:TipoFactura><sf:TipoRectificativa>S</sf:TipoRectificativa><sf:FacturasRectificadas><sf:IDFacturaRectificada><sf:IDEmisorFactura>string</sf:IDEmisorFactura><sf:NumSerieFactura>string</sf:NumSerieFactura><sf:FechaExpedicionFactura>string</sf:FechaExpedicionFactura></sf:IDFacturaRectificada></sf:FacturasRectificadas><sf:FacturasSustituidas><sf:IDFacturaSustituida><sf:IDEmisorFactura>string</sf:IDEmisorFactura><sf:NumSerieFactura>string</sf:NumSerieFactura><sf:FechaExpedicionFactura>string</sf:FechaExpedicionFactura></sf:IDFacturaSustituida></sf:FacturasSustituidas><sf:ImporteRectificacion><sf:BaseRectificada>string</sf:BaseRectificada><sf:CuotaRectificada>string</sf:CuotaRectificada><sf:CuotaRecargoRectificado>string</sf:CuotaRecargoRectificado></sf:ImporteRectificacion><sf:FechaOperacion>string</sf:FechaOperacion><sf:DescripcionOperacion>string</sf:DescripcionOperacion><sf:FacturaSimplificadaArt7273>S</sf:FacturaSimplificadaArt7273><sf:FacturaSinIdentifDestinatarioArt61d>S</sf:FacturaSinIdentifDestinatarioArt61d><sf:Macrodato>S</sf:Macrodato><sf:EmitidaPorTerceroODestinatario>D</sf:EmitidaPorTerceroODestinatario><sf:Tercero><sf:NombreRazon>string</sf:NombreRazon><sf:NIF>string</sf:NIF></sf:Tercero><sf:Destinatarios><sf:IDDestinatario><sf:NombreRazon>string</sf:NombreRazon><sf:NIF>string</sf:NIF></sf:IDDestinatario></sf:Destinatarios><sf:Cupon>S</sf:Cupon><sf:Desglose><sf:DetalleDesglose><sf:Impuesto>01</sf:Impuesto><sf:ClaveRegimen>01</sf:ClaveRegimen><sf:CalificacionOperacion>S1</sf:CalificacionOperacion><sf:TipoImpositivo>string</sf:TipoImpositivo><sf:BaseImponibleOimporteNoSujeto>string</sf:BaseImponibleOimporteNoSujeto><sf:BaseImponibleACoste>string</sf:BaseImponibleACoste><sf:CuotaRepercutida>string</sf:CuotaRepercutida><sf:TipoRecargoEquivalencia>string</sf:TipoRecargoEquivalencia><sf:CuotaRecargoEquivalencia>string</sf:CuotaRecargoEquivalencia></sf:DetalleDesglose></sf:Desglose><sf:CuotaTotal>string</sf:CuotaTotal><sf:ImporteTotal>string</sf:ImporteTotal><sf:Encadenamiento></sf:Encadenamiento><sf:SistemaInformatico><sf:NombreRazon>string</sf:NombreRazon><sf:NIF>string</sf:NIF><sf:NombreSistemaInformatico>string</sf:NombreSistemaInformatico><sf:IdSistemaInformatico>string</sf:IdSistemaInformatico><sf:Version>string</sf:Version><sf:NumeroInstalacion>string</sf:NumeroInstalacion><sf:TipoUsoPosibleSoloVerifactu>S</sf:TipoUsoPosibleSoloVerifactu><sf:TipoUsoPosibleMultiOT>S</sf:TipoUsoPosibleMultiOT><sf:IndicadorMultiplesOT>S</sf:IndicadorMultiplesOT></sf:SistemaInformatico><sf:FechaHoraHusoGenRegistro>dateTime</sf:FechaHoraHusoGenRegistro><sf:NumRegistroAcuerdoFacturacion>string</sf:NumRegistroAcuerdoFacturacion><sf:IdAcuerdoSistemaInformatico>string</sf:IdAcuerdoSistemaInformatico><sf:TipoHuella>01</sf:TipoHuella><sf:Huella>string</sf:Huella><ds:Signature Id="?"><ds:SignedInfo Id="?"><ds:CanonicalizationMethod Algorithm="?"></ds:CanonicalizationMethod><ds:SignatureMethod Algorithm="?"><ds:HMACOutputLength>integer</ds:HMACOutputLength></ds:SignatureMethod><ds:Reference Id="?" URI="?" Type="?"><ds:Transforms><ds:Transform Algorithm="?"></ds:Transform></ds:Transforms><ds:DigestMethod Algorithm="?"></ds:DigestMethod><ds:DigestValue>BASE64_DATA</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>...</ds:SignatureValue><ds:KeyInfo Id="?"></ds:KeyInfo><ds:Object Id="?" MimeType="?" Encoding="?"></ds:Object></ds:Signature></sfLR:RegistroAlta></sfLR:RegistroFactura>")
* In a SOAP HTTP request, including the XML declaration (<?xml version="1.0" encoding="UTF-8"?>) in the XML body is generally not required.
loXml.EmitXmlDecl = 0
lcSoapRequestBody = loXml.GetXml()
lcEndpoint = "https:///www1.agenciatributaria.gob.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/RequerimientoSOAP"
lcSoapAction = ""* For SOAP requests, the standard Content-Type is usually set to "text/xml" or "application/soap+xml"
lcContentType = "text/xml"* For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Http')
loHttp = CreateObject('Chilkat.Http')
loHttp.ClearHeaders()
loHttp.SetRequestHeader("Content-Type",lcContentType)
loHttp.SetRequestHeader("SOAPAction",lcSoapAction)
loResp = loHttp.PostXml(lcEndpoint,lcSoapRequestBody,"utf-8")
IF (loHttp.LastMethodSuccess = 0) THEN
? loHttp.LastErrorText
? "Failed to send SOAP request."RELEASE loXml
RELEASE loHttp
CANCELENDIF* Get the XML response body.* For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Xml')
loResponseXml = CreateObject('Chilkat.Xml')
loResp.GetBodyXml(loResponseXml)
lnStatusCode = loResp.StatusCode
? "response status code: " + STR(lnStatusCode)
RELEASE loResp
* If the status code does not indicate succcess, then show the response XML,
* which probably contains error information.IF (lnStatusCode <> 200) THEN
? loResponseXml.GetXml()
RELEASE loXml
RELEASE loHttp
RELEASE loResponseXml
CANCELENDIF
? loResponseXml.GetXml()
* Parse the successful SOAP response XML.* This is a sample of the response XML, but the namespace prefixes will be different.
* We can parse the result using "*" for the namespace prefixes (see below).
lcCSV = loResponseXml.GetChildContent("*:Body|*:RespuestaRegFactuSistemaFacturacion|*:CSV")
lcNIFPresentador = loResponseXml.GetChildContent("*:Body|*:RespuestaRegFactuSistemaFacturacion|*:DatosPresentacion|*:NIFPresentador")
lcTimestampPresentacion = loResponseXml.GetChildContent("*:Body|*:RespuestaRegFactuSistemaFacturacion|*:DatosPresentacion|*:TimestampPresentacion")
lcCabecera = loResponseXml.GetChildContent("*:Body|*:RespuestaRegFactuSistemaFacturacion|*:Cabecera")
lcTiempoEsperaEnvio = loResponseXml.GetChildContent("*:Body|*:RespuestaRegFactuSistemaFacturacion|*:TiempoEsperaEnvio")
lcEstadoEnvio = loResponseXml.GetChildContent("*:Body|*:RespuestaRegFactuSistemaFacturacion|*:EstadoEnvio")
lcIDEmisorFactura = loResponseXml.GetChildContent("*:Body|*:RespuestaRegFactuSistemaFacturacion|*:RespuestaLinea|*:IDFactura|*:IDEmisorFactura")
lcNumSerieFactura = loResponseXml.GetChildContent("*:Body|*:RespuestaRegFactuSistemaFacturacion|*:RespuestaLinea|*:IDFactura|*:NumSerieFactura")
lcFechaExpedicionFactura = loResponseXml.GetChildContent("*:Body|*:RespuestaRegFactuSistemaFacturacion|*:RespuestaLinea|*:IDFactura|*:FechaExpedicionFactura")
lcEstadoRegistro = loResponseXml.GetChildContent("*:Body|*:RespuestaRegFactuSistemaFacturacion|*:RespuestaLinea|*:EstadoRegistro")
lcCodigoErrorRegistro = loResponseXml.GetChildContent("*:Body|*:RespuestaRegFactuSistemaFacturacion|*:RespuestaLinea|*:CodigoErrorRegistro")
lcDescripcionErrorRegistro = loResponseXml.GetChildContent("*:Body|*:RespuestaRegFactuSistemaFacturacion|*:RespuestaLinea|*:DescripcionErrorRegistro")
lcCSVRegistroDuplicado = loResponseXml.GetChildContent("*:Body|*:RespuestaRegFactuSistemaFacturacion|*:RespuestaLinea|*:CSVRegistroDuplicado")
lcEstadoRegistroDuplicado = loResponseXml.GetChildContent("*:Body|*:RespuestaRegFactuSistemaFacturacion|*:RespuestaLinea|*:EstadoRegistroDuplicado")
RELEASE loXml
RELEASE loHttp
RELEASE loResponseXml