VerifactuMidAPI/test/test_direct_aeat.py

79 lines
3.5 KiB
Python
Raw Permalink Normal View History

import urllib.request
import urllib.parse
URL = "https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP"
soap_request = """<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<RegFactuSistemaFacturacion xmlns:sum="SuministroLR">
<sum:Cabecera>
<sum1:ObligadoEmision xmlns:sum1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<sum1:NombreRazon>TEST</sum1:NombreRazon>
<sum1:NIF>53950250R</sum1:NIF>
</sum1:ObligadoEmision>
</sum:Cabecera>
<sum:RegistroFactura>
<sum1:RegistroAlta xmlns:sum1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
<sum1:IDVersion>1.0</sum1:IDVersion>
<sum1:IDFactura>
<sum1:IDEmisorFactura>53950250R</sum1:IDEmisorFactura>
<sum1:NumSerieFactura>FV2026/001</sum1:NumSerieFactura>
<sum1:FechaExpedicionFactura>17-04-2026</sum1:FechaExpedicionFactura>
</sum1:IDFactura>
<sum1:NombreRazonEmisor>TEST EMPRESA</sum1:NombreRazonEmisor>
<sum1:TipoFactura>F1</sum1:TipoFactura>
<sum1:DescripcionOperacion>Factura de prueba</sum1:DescripcionOperacion>
<sum1:Desglose>
<sum1:DetalleDesglose>
<sum1:ClaveRegimen>01</sum1:ClaveRegimen>
<sum1:CalificacionOperacion>S1</sum1:CalificacionOperacion>
<sum1:TipoImpositivo>01</sum1:TipoImpositivo>
<sum1:BaseImponibleOimporteNoSujeto>100.00</sum1:BaseImponibleOimporteNoSujeto>
<sum1:CuotaRepercutida>21.00</sum1:CuotaRepercutida>
</sum1:DetalleDesglose>
</sum1:Desglose>
<sum1:CuotaTotal>21.00</sum1:CuotaTotal>
<sum1:ImporteTotal>121.00</sum1:ImporteTotal>
<sum1:Encadenamiento>
<sum1:PrimerRegistro>S</sum1:PrimerRegistro>
</sum1:Encadenamiento>
<sum1:SistemaInformatico>
<sum1:NombreRazon>TEST</sum1:NombreRazon>
<sum1:NIF>53950250R</sum1:NIF>
<sum1:NombreSistemaInformatico>TEST</sum1:NombreSistemaInformatico>
<sum1:IdSistemaInformatico>1</sum1:IdSistemaInformatico>
<sum1:Version>1.0</sum1:Version>
<sum1:NumeroInstalacion>1</sum1:NumeroInstalacion>
<sum1:TipoUsoPosibleSoloVerifactu>S</sum1:TipoUsoPosibleSoloVerifactu>
</sum1:SistemaInformatico>
<sum1:FechaHoraHusoGenRegistro>17-04-2026T12:00:00</sum1:FechaHoraHusoGenRegistro>
<sum1:TipoHuella>SHA-256</sum1:TipoHuella>
<sum1:Huella>TESTHASH</sum1:Huella>
</sum1:RegistroAlta>
</sum:RegistroFactura>
</RegFactuSistemaFacturacion>
</soapenv:Body>
</soapenv:Envelope>"""
headers = {
"Content-Type": "text/xml; charset=utf-8",
"SOAPAction": ""
}
print("Enviando a AEAT test...")
print(f"URL: {URL}")
req = urllib.request.Request(URL, data=soap_request.encode('utf-8'), headers=headers)
try:
with urllib.request.urlopen(req, timeout=30) as response:
print(f"\nStatus: {response.status}")
content = response.read().decode('utf-8')
print(f"\nResponse:\n{content[:1500]}")
except urllib.error.HTTPError as e:
print(f"HTTP Error: {e.code}")
print(f"Response: {e.read().decode('utf-8')[:1500]}")
except urllib.error.URLError as e:
print(f"URL Error: {e.reason}")