Buenas,
¿Alguien sabe si ha cambiado alguna URL o esquema?
Antes siempre recibía respuesta pero dejé este asunto unos días-semanas y ahora no me muestra respuesta el envío a VERIFACTU.
Este es mi código de prueba en PHP (unicamente he cambiado las urls con h_t_t_p_s):
Código PHP:
<?php
error_reporting(E_ALL ^ E_NOTICE); // Notificar todos los errores excepto E_NOTICE
echo "<h2>Comienza la prueba de VERIFACTU</h2>";
$url = 'h_t_t_p_s://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP';
$xml='<SOAP-ENV:Envelope xmlns:SOAP-ENV="h_t_t_p://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="h_t_t_p_s://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd" xmlns:ns2="h_t_t_p_s://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
<SOAP-ENV:Body>
<ns2:RegFactuSistemaFacturacion>
<ns1:Cabecera>
<ns1:ObligadoEmision>
<ns1:NombreRazon>NOMBRE_EMISOR_FACTURA</ns1:NombreRazon>
<ns1:NIF>NIF_EMISOR_FACTURA</ns1:NIF>
</ns1:ObligadoEmision>
</ns1:Cabecera>
<ns2:RegistroFactura>
<ns2:RegistroAlta>
<ns1:IDVersion>1.0</ns1:IDVersion>
<ns1:IDFactura>
<ns1:IDEmisorFactura>NIF_EMISOR_FACTURA</ns1:IDEmisorFactura>
<ns1:NumSerieFactura>A022</ns1:NumSerieFactura>
<ns1:FechaExpedicionFactura>08-09-2024</ns1:FechaExpedicionFactura>
</ns1:IDFactura>
<ns1:NombreRazonEmisor>NOMBRE_EMISOR_FACTURA</ns1:NombreRazonEmisor>
<ns1:TipoFactura>F1</ns1:TipoFactura>
<ns1:DescripcionOperacion>VENTA MERCADERIAS</ns1:DescripcionOperacion>
<ns1:Destinatarios>
<ns1:IDDestinatario>
<ns1:NombreRazon>NOMBRE_CLIENTE</ns1:NombreRazon>
<ns1:NIF>NIF_CLIENTE</ns1:NIF>
</ns1:IDDestinatario>
</ns1:Destinatarios>
<ns1:Desglose>
<ns1:DetalleDesglose>
<ns1:ClaveRegimen>01</ns1:ClaveRegimen>
<ns1:CalificacionOperacion>S1</ns1:CalificacionOperacion>
<ns1:TipoImpositivo>21</ns1:TipoImpositivo>
<ns1:BaseImponibleOimporteNoSujeto>100.00</ns1:BaseImponibleOimporteNoSujeto>
<ns1:CuotaRepercutida>21.00</ns1:CuotaRepercutida>
</ns1:DetalleDesglose>
</ns1:Desglose>
<ns1:CuotaTotal>21.00</ns1:CuotaTotal>
<ns1:ImporteTotal>121.00</ns1:ImporteTotal>
<ns1:Encadenamiento>
<ns1:PrimerRegistro>S</ns1:PrimerRegistro>
</ns1:Encadenamiento>
<ns1:SistemaInformatico>
<ns1:NombreRazon>NOMBRE_EMPRESA_SOFTWARE</ns1:NombreRazon>
<ns1:NIF>NIF_EMPRESA_SOFTWARE</ns1:NIF>
<ns1:NombreSistemaInformatico>SOFTWARE TPV DE PRUEBAS</ns1:NombreSistemaInformatico>
<ns1:IdSistemaInformatico>7</ns1:IdSistemaInformatico>
<ns1:Version>1.0</ns1:Version>
<ns1:NumeroInstalacion>38</ns1:NumeroInstalacion>
<ns1:TipoUsoPosibleSoloVerifactu>S</ns1:TipoUsoPosibleSoloVerifactu>
<ns1:TipoUsoPosibleMultiOT>N</ns1:TipoUsoPosibleMultiOT>
<ns1:IndicadorMultiplesOT>N</ns1:IndicadorMultiplesOT>
</ns1:SistemaInformatico>
<ns1:FechaHoraHusoGenRegistro>2024-10-01T09:05:00+02:00</ns1:FechaHoraHusoGenRegistro>
<ns1:TipoHuella>01</ns1:TipoHuella>
<ns1:Huella>DD127FF3CEE27D933D330BD718FFBD1D13B2876B14C3C3B2E3B329195</ns1:Huella>
</ns2:RegistroAlta>
</ns2:RegistroFactura>
</ns2:RegFactuSistemaFacturacion>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>';
$pfxFile = 'certificados/nombre_de_mi_certificado.p12'; // Ruta al archivo PFX del certificado electronico
$pfxPassword = '12345'; // Contraseña del PFX del certificado electronico
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/xml',"SOAPAction: AltaFactuSistemaFacturacion"));
curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'P12');
curl_setopt($ch, CURLOPT_SSLCERT, $pfxFile);
curl_setopt($ch, CURLOPT_SSLCERTPASSWD, $pfxPassword);
$response = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error: ' . curl_error($ch);
} else {
print_r("<pre>".htmlentities($response)."<pre>");
echo "TERMINADO";
}
curl_close($ch);
?>