Envío de factura manualmente al webservice de la SUNAT utilizando SoapUI, sin programación en 4 pasos - Perú
SUNAT Perú

Envío de factura manualmente al webservice de la SUNAT utilizando SoapUI, sin programación en 4 pasos - Perú

20 Nov, 2017 • 5 min de lectura

Paso 1 - Descripción de los webservices disponibles de la SUNAT

El proceso que describo aquí permite la comunicación directa a la SUNAT, práctico para la identificación de errores con el ERP, o el envío de una factura puntual, u otro envío incluido en cualquiera de sus web services que vienen detallados en el documento manual del programador pdf, en la página 12:

Servicios en producción:

//Factura. Notas vinculadas. Servicios Públicos. Resumen Diario. Comunicación de Baja. Lotes de Facturas.</p>

https://e-factura.sunat.gob.pe/ol-ti-itcpfegem/billService?wsdl

//Retención y Percepción Resumen de Reversión de comprobantes de percepción o retención.

https://www.sunat.gob.pe/ol-ti-itemision-otroscpegem/billService?wsdl

//Guía de Remisión Remitente Electrónica

https://e-guiaremision.sunat.gob.pe/ol-ti-itemision-guia-gembeta/billService?wsdl

Servicios en Beta:

//Factura. Notas vinculadas. Servicios Públicos. Resumen Diario. Comunicación de Baja. Lotes de Facturas.</p>

https://e-factura.sunat.gob.pe/ol-ti-itcpfegem/billService?wsdl

//Retención y Percepción Resumen de Reversión de comprobantes de percepción o retención.

https://www.sunat.gob.pe/ol-ti-itemision-otroscpe-gem/billService?wsdl

//Guía de Remisión Remitente Electrónica

https://e-guiaremision.sunat.gob.pe/ol-ti-itemision-guia-gembeta/billService?wsdl

Para este manual utilizaré el de pruebas:

https://e-beta.sunat.gob.pe:443/ol-ti-itcpfegem-beta/billService?wsdl

</p>  

[caption id=”attachment_619” align=”aligncenter” width=”558”]

Envío vía web service a la SUNAT

Envío vía web service a la SUNAT[/caption]

Paso 2 - Configuración de SoapUI para la comunicación web service con la SUNAT

La herramienta gratuita que utilizaremos para el envío será la versión open source de SoapUI.  Para descargar SoapUI  desde su página de descarga https://www.soapui.org/downloads/soapui.html y seleccionar la versión Open Source. La versión Linux, que es la que utilizo va muy bien, la instalación es sencilla, llamando el comando desde el directorio de descarga:

sudo sh SoapUI-x64-5.3.0.sh

</p> Iniciar SoapUI y crear un nuevo proyecto

[caption id=”attachment_640” align=”aligncenter” width=”608”]

SoapUI nuevo proyecto

SoapUI nuevo proyecto[/caption]

Se abrirá un diálogo como el que sigue, indicar el nombre del proyecto y la URL del webservice de la SUNAT: https://e-beta.sunat.gob.pe:443/ol-ti-itcpfegem-beta/billService?wsdl

[caption id=”attachment_641” align=”aligncenter” width=”585”]

Cargar webservice de test de la SUNAT

Cargar webservice de test de la SUNAT[/caption]

A continuación ‘OK’, y conectará con el web service y descargará las llamadas SOAP publicadas:

[caption id=”attachment_644” align=”aligncenter” width=”251”]

Llamadas SOAP disponibles

Llamadas SOAP disponibles[/caption]

A continuación podemos desplegar y abrir la llamada SOAP correspondiente a sendBill

[caption id=”attachment_645” align=”aligncenter” width=”742”]

Llamada SOAP sendBill

Llamada SOAP sendBill[/caption]

Según la documentación: Este método recibe un archivo ZIP con un único documento XML de comprobante y devuelve un archivo Zip que contiene un documento XML que es la constancia de aceptación o rechazo.

Paso 3 - Preparación del fichero para enviar a la SUNAT

Según la documentación la definición de los parámetros es la siguiente para la llamada sendBill

Contenido de SOAP sendBill 1

[caption id=”attachment_650” align=”aligncenter” width=”602”]

Contenido de SOAP sendBill 2

Contenido de SOAP sendBill[/caption]

Como plantilla de sendBill tomamos el de la documentación en lugar del que se ha descargado automáticamente:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://service.sunat.gob.pe" xmlns:wsse="http://docs.oasisopen.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"></p>
	<soapenv:Header>  
		<wsse:Security>  
			<wsse:UsernameToken>  
				<wsse:Username>20100066603MODDATOS</wsse:Username>  
				<wsse:Password>moddatos</wsse:Password>  
			</wsse:UsernameToken>  
		</wsse:Security>  
	</soapenv:Header>  
	<soapenv:Body>  
		<ser:sendBill>  
			<fileName>20100066603-01-F001-1.zip</fileName>  
			<contentFile>cid:20100066603-01-F001-1.zip</contentFile>  
		</ser:sendBill>  
	</soapenv:Body>  
</soapenv:Envelope>

[caption id=”attachment_626” align=”aligncenter” width=”500”]

Estructura de la llamada Soap con el token

Estructura de la llamada Soap[/caption]

Construcción del nombre del fichero que se comunica en el fileName:

[caption id=”attachment_658” align=”aligncenter” width=”519”]

Construcción del nombre del fichero - fileName

Construcción del nombre del fichero - fileName[/caption]

En el campo contentFile, se enviará el fichero dentro de un zip. Se debe disponer del fichero XML que ya debe de llevar el mismo nombre que el del fichero ZIP.

Para poder enviar el contenido de este zip, lo abriremos con un editor y lo convertiremos en base64 para que no se pierdan los caracteres de control que de otro modo no podrían enviarse. SoapUI dispone de la facilidad de conversión a base64 directamente, para ello, hay que dejar vacío y situarse dentro de la etiqueta <contentFile></contentFile> y realizar botón derecho y seleccionar “insert file as base64”.

Paso 4 - Envío del fichero a la SUNAT

Último paso para realizar el envío desde SoapUI a la SUNAT, presionar el botón de play arriba a la izquierda:

[caption id=”attachment_664” align=”aligncenter” width=”920”]

Envío del documento con SoapUI a la SUNAT Web Service

Envío del documento con SoapUI a la SUNAT Web Service[/caption]

Una vez se envía, en el lado derecho, después de unos segundos, aparecerá la respuesta de la SUNAT.  Ambos casos pueden ser guardados para futuro análisis con el botón derecho ‘Save as’ Ctrl + s.

 

Categorías: SUNAT Perú Web
Etiquetas: