Clase Genérica para realizar el timbrado y cancelación de un CFDI con Facturación Moderna, utilizando NodeJS.
Este ejemplo de conexión no es mantenido por FacturacionModerna, es un ejemplo independiente
- Soporte para el timbrado de diversos tipos de documento (Factura, Nota de Crédito, Recibo de Nómina)
- Clase genérica lista para ser implementada en tu proyecto.
- Timbrado de XML CFDI versión 3.2
- Timbrado de XML CFDI versión 3.3
- Timbrado de un archivo de texto simple
- Ejemplo de generación del sello digital
#Instalación
El siguiente ejemplo de conexión se realizo en ambientes Mac y Linux con la version de node v6.9.1 LTS, favor de contar con esta versión o una superior.
- Clonar el repositorio
- Instalar las dependencias mediante el comando:
npm install
- Ejecutar el ejemplo:
node ejemploTimbrarLayout.js
Asegurese de asignar permisos de escritura a las carpetas comprobantes y tmp
Para generar la cadena original y sellarla (solo para ejemplos con xml) se hará uso de los siguientes complementos asegurese de tenerlos instalados
- xsltproc
- openssl
const credenciales = {
user: "Su usuario",
password: "Su contraseña",
};
const rfcEmisor = "RFC emisor";
const FacturacionModerna = require('./lib/FacturacionModerna');
const cliente = new FacturacionModerna(url, credenciales);
// Timbrar un comprobante
// La llamada a esta funcion se puede resolver mediante Callback o Promesa de las siguientes maneras.
// Callback
cliente.timbrar(cfdi, rfcEmisor, function (error, respuesta) {
// resolver
});
// Promesa
cliente.timbrar(cfdi, rfcEmisor).then(function (respuesta) {
// resolver
}).catch(function (error) {
// resolver
});
Propiedad | Descripción |
---|---|
respuesta.xml | Comprobante xml en formato base64 |
respuesta.uuid | Folio fiscal del comprobante, solo cuando se habilita la opcion cliente.escribirArchivos(true) |
respuesta.pdf | Comprobante pdf en formato base64, solo cuando se habilita la opcion cliente.generarPDF(true) |
respuesta.png | Comprobante pdf en formato base64, solo cuando se habilita la opcion cliente.generarCBB(true) |
respuesta.txt | Comprobante pdf en formato base64, solo cuando se habilita la opcion cliente.generarTXT(true) |
Opción | Descripción |
---|---|
cliente.generarPDF(true) | Indica si se generará el archivo pdf |
cliente.generarCBB(true) | Indica si se generará el codigo de barras bidimensional |
cliente.generarTXT(true) | Indica si se generará el nodo tfd:TimbreFiscalDigital en formato TXT |
cliente.escribirArchivos(true) | Indica si se escribirá el archivo una vez realizado el timbrado |
cliente.establecerDirectorio(path) | Indica el directorio en donde se almacenarán los archivos (se deberá contar con permisos de escritura). La ruta completa del archivo será: path + uuid del comprobante + . + la extension del archivo (xml, pdf, txt, png) |