Download the PHP package phpcfdi/xml-cancelacion without Composer

On this page you can find all versions of the php package phpcfdi/xml-cancelacion. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package xml-cancelacion

phpcfdi/xml-cancelacion

Source Code Packagist PHP Version Support Discord Latest Version Software License Build Status Reliability Maintainability Code Coverage Violations Total Downloads

Genera documentos de cancelación de CFDI firmados (XMLSEC)

:us: The documentation of this project is in spanish as this is the natural language for intended audience.

Esta librería contiene el código necesario para crear una solicitud de cancelación acorde al SAT. Esta solicitud está descrita en el Anexo 20, y solo es accesible por medio de un PAC.

Algunos PAC ofrecen métodos de cancelación que recaen en la fabricación de esta firma, de esta manera no es necesario compartir el certificado ni la llave privada con el PAC.

Instalación

Usa composer

Ejemplo básico de uso

Con el objeto de ayuda

Con un uso detallado de solicitud de cancelación

La salida esperada es algo como lo siguiente (sin los espacios en blanco, que agregué para mejor lectura).

Objeto de ayuda

XmlCancelacionHelper te permite usar la librería rápidamente.

Requiere de un objeto Credentials que puede ser insertado en la construcción, puede ser insertado con el método setCredentials o por setNewCredentials. La diferencia entre estos dos métodos es que el primero recibe un objeto, y el segundo recibe los parámetros de ruta al certificado, ruta a la llave privada y contraseña.

En la herramienta de ayuda no se especifica el RFC, cuando se fabrica la solicitud firmada se obtiene el RFC directamente de las propiedades del certificado.

Los métodos de ayuda utilizan una fecha opcional (DateTimeImmutable o null), si no se especifica entonces se toma la fecha actual del sistema, ten en cuenta que para la creación se utiliza el reloj del sistema y el huso horario. Si no estás seguro de poder controlar estas configuraciones te recomiendo que establezcas el parámetro.

Solicitud de cancelación

Para crear la solicitud firmada se puede hacer con los métodos signCancellation para un solo UUID o signCancellationUuids para varios UUID. Como primer parámetro reciben qué UUID será cancelado.

Solicitud de folios relacionados

Para crear la solicitud de folios relacionados se puede hacer con el método signObtainRelated. Requiere el UUID del que se está haciendo la consulta, un rol que define si el RFC desde el que se hace la consulta se trata de un UUID recibido o emitido y el RFC del PAC por el cual se realiza la consulta.

Respuesta de aceptación o cancelación a un CFDI

Para crear la solicitud de respuesta usa el método signCancellationAnswer. Requiere el UUID para el cual estás estableciendo la respuesta, la respuesta (aceptación o cancelación) y el RFC del PAC por el cual se realiza la consulta.

Solicitud de cancelación de RET

Existe un CFDI especial de "Retenciones e información de pagos", donde también se requiere una solicitud firmada tal como en una cancelación de CFDI, pero su contenido es diferente.

Para crear la solicitud firmada para RET se puede hacer con los métodos signRetentionCancellation para un solo UUID o signRetentionCancellationUuids para varios UUID. Como primer parámetro reciben qué UUID será cancelado.

TIP: Por la experiencia en el uso de los servicios de SAT es recomendado usar siempre cancelaciones individuales.

Objetos de trabajo

Documentos a cancelar

CancelDocuments es una colección de objetos a cancelar. A pesar de que es posible solicitar la cancelación de múltiples documentos se recomienda enviar uno por uno.

CancelDocument es la especificación de objeto a cancelar. El objeto se puede crear utilizando el constructor, o bien, utilizando los métodos de ayuda que incluyen el motivo de la cancelación:

CapsuleInterface son los objetos que contienen toda la información relacionada con los datos a firmar, este tipo de objetos tiene la facultad de poder revisar si el RFC es el mismo usado en la firma así como poder generar el documento XML a firmar.

Credentials Es un objeto que encapsula el trabajo con los certificados y llave privada. Internamente, utiliza phpcfdi/credentials y la clase interna es solo una indirección de PhpCfdi\Credentials\Credential. Incluso puedes crear una credencial de phpcfd/xml-cancelacion a partir de un objeto directo de phpcfdi/credentials usando Credentials::createWithPhpCfdiCredential, por ejemplo:

SignerInterface son los objetos que permiten firmar el documento generado por una cápsula y una credencial. Existen dos implementaciones: DOMSigner (recomendada) y XmlSecLibsSigner. La primera no requiere de mayores dependencias y realiza el firmado utilizando las especificaciones del SAT. La segunda utiliza parcialmente XmlSecLibs y termina la información de la firma usando un mecanismo interno.

Observaciones

Al parecer es obligatorio incluir en la firma los nombres de espacio xmlns:xsd y xmlns:xsi aunque no se ocupen. Si bien, esto no es necesario para producir un documento con la firma correcta, sí parece ser necesario para producir la información que se requiere por parte del PAC o del SAT.

A partir de 2019-08-27 con la versión 1.0.0 se puede usar robrichards/xmlseclibs. Para más información ver el archivo XmlSecLibs.

A partir de 2019-08-13 con la versión 0.4.0 se eliminó la dependencia a eclipxe/cfdiutils y se cambió a la librería phpcfdi/credentials, con esta nueva dependencia se trabaja mucho mejor con los certificados y llaves privadas.

Compatibilidad

Esta librería se mantendrá compatible con al menos la versión con soporte activo de PHP más reciente.

También utilizamos Versionado Semántico 2.0.0 por lo que puedes usar esta librería sin temor a romper tu aplicación.

Contribuciones

Las contribuciones con bienvenidas. Por favor, revisa CONTRIBUTING para más detalles y recuerda revisar el archivo de tareas pendientes TODO y el archivo CHANGELOG.

Copyright and License

The phpcfdi/xml-cancelacion library is copyright © PhpCfdi and licensed for use under the MIT License (MIT). Please see LICENSE for more information.


All versions of xml-cancelacion with dependencies

PHP Build Version
Package Version
Requires php Version >=7.3
ext-dom Version *
ext-openssl Version *
eclipxe/enum Version ^0.2
phpcfdi/credentials Version ^1.1.1
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package phpcfdi/xml-cancelacion contains the following files

Loading the files please wait ....