Esta librería contiene objetos de ayuda para crear expresiones de CFDI 3.2, CFDI 3.3, CFDI 4.0, RET
2.0 y RET 1.0 de acuerdo a la información técnica del SAT en el Anexo 20.
Librería inspirada por la versión para php https://github.com/phpcfdi/cfdi-expresiones
Estas expresiones se utilizan principalmente para dos motivos:
Generar el código QR de una representación impresa de un CFDI o RET.
Consultar el WebService del SAT de estado de un CFDI.
Ejemplo de expresión para CFDI 3.3 && CFDI 4.0:
https://verificacfdi.facturaelectronica.sat.gob.mx/default.aspx?id=CEE4BE01-ADFA-4DEB-8421-ADD60F0BEDAC&re=POT9207213D6&rr=DIM8701081LA&tt=2010.01&fe=/OAgdg==
Ejemplo de expresión para CFDI 3.2:
?re=AAA010101AAA&rr=COSC8001137NA&tt=0000001234.567800&id=CEE4BE01-ADFA-4DEB-8421-ADD60F0BEDAC
Ejemplo de expresión para RET 1.0:
?re=XAXX010101000&nr=12345678901234567890&tt=1234567890.123456&id=ad662d33-6934-459c-a128-BDf0393f0f44
Ejemplo de expresión para RET 2.0:
https://prodretencionverificacion.clouda.sat.gob.mx/?id=ad662d33-6934-459c-a128-BDf0393f0f44&re=XAXX010101000&nr=12345678901234567890&tt=1234567890.12&fe=/OAgdg==
Primeros pasos
Instalación
Para comenzar a utilizar la libreria lo primero que hay que hacer es instalarla, corre el siguiente
comando en tu terminal:
npm i @nodecfdi/cfdi-expresiones --save
pnpm add @nodecfdi/cfdi-expresiones
yarn add @nodecfdi/cfdi-expresiones
Con esto ya tendremos la libreria instalada y lista para ser usada.
Uso básico
import { readFileSync } from ' fs ' ;
import { DiscoverExtractor } from ' @nodecfdi/cfdi-expresiones ' ;
import { newDocumentContent } from ' @nodecfdi/cfdi-core ' ;
const extractor = new DiscoverExtractor ();
// Accedemos al contenido en nuestro archivo XML
const content = readFileSync ( ' archivo-cfdi.xml ' ). toString ();
// generamos el documento con ayuda de @nodecfdi/cfdi-core
const document = newDocumentContent ( content );
// obtenemos la expresión
const expression = extractor . extract ( document );
// y también podemos obtener los valores inviduales
const values = extractor . obtain ( document );