SDK para consumir y usar los Web Services de AFIP
Ver documentacion completa
Inspirado en afip.js
Reportar un bug
npm i afip.ts --save
yarn add afip.ts
Se debe tener los certificados emitidos por AFIP, ya sean para los servidores de homologacion (test) o produccion, para poder pasarselos como parametro al paquete y que este haga uso de ellos para comunicarse con los web services.
Ejemplo de como generar factura electronica:
import { Afip } from "afip.ts";
const afip: Afip = new Afip({
key: "private_key_content",
cert: "crt_content",
cuit: 20111111112,
});
const date = new Date(Date.now() - new Date().getTimezoneOffset() * 60000)
.toISOString()
.split("T")[0];
const payload = {
CantReg: 1, // Cantidad de comprobantes a registrar
PtoVta: 1, // Punto de venta
CbteTipo: 6, // Tipo de comprobante (ver tipos disponibles)
Concepto: 1, // Concepto del Comprobante: (1)Productos, (2)Servicios, (3)Productos y Servicios
DocTipo: 99, // Tipo de documento del comprador (99 consumidor final, ver tipos disponibles)
DocNro: 0, // Número de documento del comprador (0 consumidor final)
CbteDesde: 1, // Número de comprobante o numero del primer comprobante en caso de ser mas de uno
CbteHasta: 1, // Número de comprobante o numero del último comprobante en caso de ser mas de uno
CbteFch: parseInt(date.replace(/-/g, "")), // (Opcional) Fecha del comprobante (yyyymmdd) o fecha actual si es nulo
ImpTotal: 121, // Importe total del comprobante
ImpTotConc: 0, // Importe neto no gravado
ImpNeto: 100, // Importe neto gravado
ImpOpEx: 0, // Importe exento de IVA
ImpIVA: 21, //Importe total de IVA
ImpTrib: 0, //Importe total de tributos
MonId: "PES", //Tipo de moneda usada en el comprobante (ver tipos disponibles)('PES' para pesos argentinos)
MonCotiz: 1, // Cotización de la moneda usada (1 para pesos argentinos)
Iva: [
// (Opcional) Alícuotas asociadas al comprobante
{
Id: 5, // Id del tipo de IVA (5 para 21%)(ver tipos disponibles)
BaseImp: 100, // Base imponible
Importe: 21, // Importe
},
],
};
const invoice = await afip.electronicBillingService.createInvoice(payload);
Ejemplo de otros endpoints:
const points = await afip.electronicBillingService.getSalesPoints();
Toda configuracion del package es pasada por el constructor de la clase Afip
la cual recibe Context.
Caracteristicas:
- Escrito enteramente con
Typescript
- Soporte para
Serverless
. El package permite manejar los token de autenticacion de manera aislada.
Para mas documentacion, ir al sitio oficial.
Si encontras un bug o desaes sugerir algo, revisa de que no haya issues con el mismo tema, y de ser asi puedes generar uno aqui.
Seria genial si puedes ayudarnos mejorando afip.ts
. ¿Como hacer?
-
npm install
. -
Rompela escribiendo tu codigo.
-
Correr los test:
npm test
. -
Cear un Pull Request.
Este proyecto esta bajo la licencia MIT
- Ver LICENSE para mas detalles.