cfdi-to-json
v2.2.3
Published
Este módulo soporta las versiónes 3.2 y 3.3 con los siguientes complementos del SAT.
Downloads
104
Readme
CFDI to JSON
Este módulo soporta las versiónes 3.2 y 3.3 con los siguientes complementos del SAT.
Timbre fiscal
Pagos
Impuestos Locales
Nominas 1.1 y 1.2
Estado cuenta combustible 1.0, 1.1 y 1.2
Donatarias
Divisas
Leyendas fiscales
PFintegrante coordinado
Turista pasajero extranjero
Spei
Detallista
Cfdi registro fiscal
Pago en especie
Vales de despensa
Consumo de combustibles 1.0 y 1.1
Aerolineas
Notarios
Vehiculos usados
Servicio parcial construccion
Renovacion sustitucion vehiculos
Certificado destrucción
Obras arte antiguedades
ComercioExterior 1.1 y 1.1
Ine
Retenciones
- Arrendamiento en Fideicomiso
- Dividendos
- Enajenacion de Acciones
- Fideicomiso no Empresarial
- Intereses
- Intereses Hipotecarios
- Operaciones con Derivados
- Pagos a Extranjeros
- Planes de Retiro V1.1
- Premios
- Sector Financiero
- Servicios Plataformas Tecnologicas
Instalación
npm i --save cfdi-to-json
Uso
const CfdiToJson = require('cfdi-to-json');
var jsonCfdi = null;
// Uso con ruta del XML
jsonCfdi = CfdiToJson.parse({ path: 'RUTA_DEL_CFDI.xml' });
// Uso con el contenido del XML
jsonCfdi = CfdiToJson.parse({
contentXML: `
<?xml version="1.0" encoding="utf-8"?>
<cfdi:Comprobante Version="3.3" ...>
...
</cfdi:Comprobante>
`
});
Estructura de datos
Este es un ejemplo de como vendría formateado el JSON resultado. Puedes probar con CFDIs complejos para ver como se formatean en tu caso.
{
version: String,
serie: String,
sello: String,
folio: String,
fecha: String,
formaDePago: String,
metodoDePago: String,
subTotal: String,
total: String,
certificado: String,
noCertificado: String,
tipoDeComprobante: String,
moneda: String,
tipoCambio: String,
descuento: String,
motivoDescuento: String,
lugarExpedicion: String,
numCtaPago: String,
emisor: Object<{
nombre: String,
rfc: String,
regimenFiscal: String
}>,
receptor: Object<{
nombre: String,
rfc: String,
residenciaFiscal: String,
numRegIdTrib: String,
usoCFDI: String
}>,
conceptos: Array<{
claveProdServ: String,
noIdentificacion: String,
cantidad: String,
claveUnidad: String,
unidad: String,
descripcion: String,
valorUnitario: String,
importe: String,
descuento: String
}>
impuestos: Object<{
totalImpuestosRetenidos: String,
totalImpuestosTrasladados: String,
traslados: Array<{ ... }>,
retenciones: Array<{ ... }>
}>,
timbreFiscal: Object<{
fechaTimbrado: String,
uuid: String,
noCertificadoSAT: String,
selloSAT: String,
selloCFD: String,
RFCProvCertif: String
}>
...
}
Licencia
MIT