@cdwenz/afip-sdk
v1.0.6
Published
SDK Node.js para facturación electrónica AFIP WSFEv1
Readme
@cdwenz/afip-sdk
SDK ligero para Node.js que simplifica la integración con los servicios de facturación electrónica de AFIP (WSFEv1) en Argentina.
Este proyecto busca ofrecer una interfaz moderna y clara para trabajar con AFIP sin tener que lidiar directamente con SOAP, XML, autenticación WSAA y firma CMS.
Características
- Implementación completa del flujo de autenticación WSAA
- Firma automática del TRA (loginTicketRequest) usando certificado AFIP
- Cache automático de token y sign
- Integración directa con WSFEv1
- Soporte para Facturas A, B y C
- Manejo de múltiples ítems
- Soporte para múltiples alícuotas de IVA
- Cálculo automático de:
- Neto
- IVA
- Total
- Manejo de CAE y fecha de vencimiento
- Validaciones básicas antes de enviar datos a AFIP
- Control de concurrencia para evitar duplicación de comprobantes
- Compatible con homologación y producción
Instalación
npm install @cdwenz/afip-sdkConfiguración
El SDK requiere:
- CUIT del emisor
- Certificado AFIP (.crt)
- Clave privada (.key)
- Entorno (homologación o producción)
import { AFIP } from "@cdwenz/afip-sdk"
const afip = new AFIP({
cuit: 20123456789,
certPath: "./cert.crt",
keyPath: "./private.key",
production: false
})Crear una factura
const invoice = await afip.createInvoice({
puntoVenta: 1,
tipoComprobante: 6, // Factura B
docTipo: 99,
docNro: 0,
items: [
{
description: "Producto de prueba",
quantity: 1,
unitPrice: 1000,
iva: 21
}
]
})
console.log(invoice)Respuesta:
{
"comprobante": 1023,
"cae": "70417054367476",
"caeVto": "20260411",
"total": 1210
}Qué significa cada campo
puntoVenta
Punto de venta AFIP.
1tipoComprobante
AFIP usa códigos.
| tipo | código | | -------------- | ------ | | Factura A | 1 | | Factura B | 6 | | Factura C | 11 | | Nota Crédito A | 3 | | Nota Crédito B | 8 | | Nota Crédito C | 13 |
docTipo
Tipo de documento del cliente.
| tipo | código | | ---------------- | ------ | | Consumidor final | 99 | | DNI | 96 | | CUIT | 80 |
docNro
Número del documento.
Ejemplo consumidor final:
0Métodos disponibles
login()
Obtiene un token y sign desde WSAA.
await afip.login()getLastVoucher(puntoVenta, tipoComprobante)
Consulta el último comprobante autorizado.
const last = await afip.getLastVoucher(1, 6)createInvoice(data)
Genera una factura electrónica utilizando FECAESolicitar.
Características:
- Cálculo automático de totales
- Múltiples ítems
- Múltiples alícuotas de IVA
Entornos AFIP
El SDK soporta automáticamente ambos entornos.
Homologación
https://wsaahomo.afip.gov.ar
https://wswhomo.afip.gov.arProducción
https://wsaa.afip.gov.ar
https://servicios1.afip.gov.arSe controlan mediante:
production: true⚠️ Requisitos
Para utilizar el SDK necesitas:
- Certificado digital AFIP válido
- Clave privada asociada al certificado
- Punto de venta habilitado para WSFEv1
Casos de uso
Este SDK puede integrarse fácilmente en:
- APIs backend
- sistemas SaaS
- e-commerce
- POS
- plataformas gastronómicas
- sistemas administrativos
Licencia
MIT
Autor
Cristian Wenz
GitHub https://github.com/cdwenz
