facturacionelectronicapy-ts-xmlgen
v0.0.4
Published
Genera el contenido del archivo XML del Documento electrónico exigido por la SET
Downloads
299
Maintainers
Readme
Facturación Electrónica - Generación de XML para la SET (Paraguay)
Módulo NodeJS que genera el archivo XML para enviar a la SET (Subsecretaria de Estado de Tributación del Ministerio de Hacienda) para el proceso y generación del documento electrónico, a partir de una estructura de datos en formato JSON.
Basado en la documentación técnica de e-kuatia (Manual Técnico: 150)
Este paquete pretende servir de modelo de transferencia estandarizado para la comunicación con la SET contemplando la totalidad de los campos exigidos para cada bloque y tipos de documentos electrónicos.
El mismo es utilizado y mantenido por el autor y otorgado a la comunidad de desarrolladores de forma gratuita bajo licencia MIT
El módulo está preparado de forma a proveer una fácil integración dentro de su entorno NodeJS y con cualquier otro lenguaje, sistema o librería que lo requiera, por ejemplo publicando el método desde un REST.
Indices
Características
- Genera el CDC automáticamente de acuerdo a los datos del documento electrónico
- Implementa el Algoritmo del dígito verificador del CDC
- Permite sobrescribir el valor del código de seguridad, de acuerdo a las necesidades del implementador
- Realiza la validación de los datos de entrada conforme el manual técnico de la SET
Instalación
Para instalar el módulo en su proyecto node, ejecute el siguiente comando:
npm install facturacionelectronicapy-ts-xmlgen
Ejemplo de uso
Cuando se produce un error puede ser una instancia de Error
(error imprevisto) o una instancia de ZodError (error de validación).
Generación de documento electrónico
El método requiere 2 argumentos para general el XML. El primero es un argumento params
con las informaciones estáticas del Contribuyente emisor, y el segundo es data
con los datos variables para cada documento electrónico a generar.
import EDocument from 'facturacionelectronicapy-ts-xmlgen';
// incluye todos los esquemas y el tipo de resultado de cada uno
import * as EDSchemas from 'facturacionelectronicapy-ts-xmlgen/schemas';
// incluye todos los enums que puedes usar en el documento
import * as EDTypes from 'facturacionelectronicapy-ts-xmlgen/types';
const params: EDSchemas.EDocParamsInput = {};
const data: EDSchemas.EDocDataInput = {};
const options: EDTypes.XmlGenConfig = {};
try {
const xml = await EDocument.generateXMLDocument(params, data, options);
console.log(xml);
} catch (error) {
console.log(error);
}
Generación de evento
import * as EDTypes from 'facturacionelectronicapy-ts-xmlgen/types';
import EDocument from 'facturacionelectronicapy-ts-xmlgen';
const id: number = 0;
const data: EDTypes.EventData = {...};
try {
const xml = await EDocument.generateXMLEvent(id, data);
console.log(xml);
} catch (error) {
console.log(error);
}
Base de datos
import EDocument from 'facturacionelectronicapy-ts-xmlgen';
import { EDocumentType } from 'facturacionelectronicapy-ts-xmlgen/types';
// retorna el sevicio de base de datos
const db = EDocument.db();
// resultado: ['_id', 'description']
const documentTypesHeaders = db.documentTypes.headers;
// tipo del resultado: [EDocumentType, string][]
const documentTypesRows = db.documentTypes.data;
// resultado: { _id: 1, description: 'Factura electrónica' }
const elctronicInvoiceData = await db.eDocumentTypes.findById(EDocumentType.FACTURA_ELECTRONICA);
Estructuras
- data
- params
- cancellationEvent
- disablingEvent
- conformityEvent
- disconformityEvent
- ignoranceEvent
- notificationEvent
- nominationEvent
- transportUpdateEvent