Skip to content

Latest commit

 

History

History
171 lines (104 loc) · 6.86 KB

File metadata and controls

171 lines (104 loc) · 6.86 KB

banner

Código en PHP del Servicio Web para Timbrar y Cancelar

PHP badge

Actualizacion importante de nueva API 1 de abril 2021

Estos servicios dejarán de estar disponible a partir del 1 de abril del 2021, la nueva versión de la api tiene estos y mas herramientas que te facilitarán y ahorran mucho tiempo en validaciones o penalizaciones del sat en auditorías, te recomendamos ampliamente revisar la nueva documentación en https://developers.facturoporti.com.mx/reference/api-desarrollo-facturoporti como parte de las nuevas características podrás:

  • Puedes realizar consultas o descargas de los catálogos del sat actualizados.
  • Timbra cualquier tipo de cfdi con json o xml
  • Valida códigos postales y direcciones
  • Cancela cfdi
  • Consulta cfdi relacionados
  • Consulta el estatus del cfdi
  • Consulta las solicitudes pendientes de cancelaciones
  • Valida exhaustivamente el cfdi (estructura, integridad, vigencia, fecha de emisión del cfdi, fecha de validez del certificado al momento de emisión, sello, matriz de errores del SAT, estatus en el sat, etc).
  • Valida las listas negras del sat: efos, edos, no localizados.
  • Valida certificados digitales o fiel
  • Valida los rfc para verificar si pueden emitir o recibir cfdi
  • Recepción de documentos
  • Tiene muchas opciones mas y continuamente se integran nuevas funcionalidades.

Los nuevos servicios de acceso a la api están publicados en:

https://testapi.facturoporti.com.mx/
https://api.facturoporti.com.mx/

Dependiendo del entorno en que estés debes de utilizar sandbox o producción.

¿Necesitas ayuda o requieres contratar los servicios? Envíanos un email a soporte@facturoporti.com.mx ventas@facturoporti.com.mx, dirígete a la página https://www.facturoporti.com.mx platica con nosotros en línea o llámanos a los teléfonos 555 546 2288 o al 558 421 7675 con mucho gusto podremos darte lo que necesitas.

Introdución

Este es el ejemplo de uso para consumir el Servicio Web en PHP para generar Facturas, Notas, Recibos, Nómina, Carta Porte, Complemento de Pagos, etc).

Este servicio es ideal cuando ya generas el XML por medios propios y solo necesitas el timbrado. La integración es fácil y rápida en 10 minutos estarás emitiendo en nuestro ambiente de pruebas los CFDI la puesta en producción en menos de 1 hora.

Además el Servicio Web permitirá cancelar uno o varios CFDI

Requerimientos

PHP 7 en adelante, se recomienda usar la última versión de PHP.

El ejemplo se realizó utilizando la herramienta nativa de PHP SoapClient, por lo que debe de estar habilitada antes de realizar la ejecución del servicio web. Para validar que esté habilitada utilice el script phpinfo();

C# badge

En caso de que muestre la imagen anterior esto indica que está habilitado correctamente. En caso contrario realice lo siguiente:

  1. Abre el archivo php.ini en el carpeta de instalación de PHP

  2. Elimine la cadena de comentario ; al inicio de la linea extension=php_soap.dll o extension=soap

  3. Reinicie el servidor Apache, IIS o cualquier otro servidor web

  4. Ejecute de nueva cuenta el script phpinfo();

Al finalizar revisa que ya esté habilitada la extensión SOAP de la imagen anterior.

Instalación

Obten la última versión de FacturoPorTi PHP en:

git clone https://github.com/facturoporti/factura-electronica-Web-Service-PHP.git

Timbrar

Descarga el repositorio que contiene lo necesarios para realizar el proceso de timbrado. Selecciona el archivo el sistema realizará lo siguiente:

$fichero = file_get_contents('./xml/XEXX010101000_FAC_AC2_20190524.xml', true);

	$wsdl = "https://wcfpruebas.facturoporti.com.mx/Timbrado/Servicios.svc?wsdl";

	$soapClient = new SoapClient($wsdl); 
	
	$parametroSeguridad = array ('Usuario' => 'PruebasTimbrado','Contrasenia' => '@Notiene1');
	$parametro = array ('XMLEntrada' =>  $fichero);
	
	$retval = $soapClient->TimbradoMultiEmpresas(array ('parametroSeguridad' => $parametroSeguridad,'parametro' => $parametro));
	
	//print_r ($retval);
	echo ('UUID ' . $retval->TimbradoMultiEmpresasResult->Timbrado->UUID);
	echo ('Cadena Original ' . $retval->TimbradoMultiEmpresasResult->Timbrado->CadenaOriginal);
	echo ('Sello SAT ' . $retval->TimbradoMultiEmpresasResult->Timbrado->SelloSAT);
	echo ('Fecha Timbrado ' . $retval->TimbradoMultiEmpresasResult->Timbrado->Fecha);
	
	
	echo '<script language="javascript">';
	echo "alert('". $retval->TimbradoMultiEmpresasResult->Timbrado->TimbreXML . "')";
	echo '</script>';
	

XML Timbrado

Al término el sistema te mostrará el UUID, cadena original, sello SAT, fecha de timbrado además del timbre fiscal.

Cancelar

Ingresa el folio fiscal (UUID) para realizar la cancelación:

 $fichero = file_get_contents('./Certificado/AAA010101AAA.pfx', true);
	$wsdl = "https://wcfpruebas.facturoporti.com.mx/Timbrado/Servicios.svc?wsdl";
    
	$soapClient = new SoapClient($wsdl); 
	//Envia las credenciales de acceso
	$parametroSeguridad = array ('Usuario' => 'PruebasTimbrado','Contrasenia' => '@Notiene1');
	// Agrega los parametros para cancelar uno o varios UUID
	$parametro = array ('RFC' =>  'AAA010101AAA', 'PFX' => $fichero, 'Password' => '12345678a', 'UUID' => array('a510d8e9-5f21-4e3c-8a04-6d65ac4ef174', 'd55e6169-f221-4bd7-8fe6-2bf0a12a1f69'));
	
	$retval = $soapClient->CancelarCFDICualquierPAC(array ('parametroSeguridad' => $parametroSeguridad,'parametro' => $parametro));
		
	print_r ($retval->CancelarCFDICualquierPACResult->FoliosRespuesta);
	

Probar Cancelación de CFDI

Antes de ejecutar el método de cancelación del código deberás de actualizar los valores con tus datos fiscales; al término de la ejecución obtendrás la respuesta de la cancelación.

Nota: El certificado digital que se debe de enviar es de tipo PFX si no se manda el correcto mandará error la cancelación

Documentación Adicional

Si deseas mas información del servicio web descarga la guía de integración, contiene todos los atributos y su descripción además de los valores que son permitidos http://software.facturoporti.com.mx/WebService/Manual-Integracion-Web-Service.pdf

Contribuir

  1. Fork el repositorio

  2. Clona el repositorio

    git clone git@github.com:yourUserName/factura-electronica-Web-Service-PHP.git

  3. Crea una rama

    git checkout desarrollo
    git pull al original desarrollo
    # Podrás escoger el nombre de tu rama
    git checkout -b <feature/my_branch>
  1. Haz los cambios necesarios y commit para carga los
    git add .
    git commit -m "mis cambios"
  1. Envía los cambios a GitHub
    git push origin <feature/my_branch>

***-

License

Desarrollado en México por FacturoPorTi. Licencia de uso Ver mas.