https://github.com/ralcorta/arcasdk
SDK para los Web Services de AFIP
https://github.com/ralcorta/arcasdk
afip afip-js afip-sdk afip-ts api argentina cae contribuyente facturacion-electronica javascript libreria nodejs package programacion rest sdk soap typescript webservice wsaa
Last synced: 28 days ago
JSON representation
SDK para los Web Services de AFIP
- Host: GitHub
- URL: https://github.com/ralcorta/arcasdk
- Owner: ralcorta
- License: mit
- Created: 2022-10-15T00:20:58.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2026-01-07T19:36:02.000Z (about 1 month ago)
- Last Synced: 2026-01-12T04:49:39.972Z (30 days ago)
- Topics: afip, afip-js, afip-sdk, afip-ts, api, argentina, cae, contribuyente, facturacion-electronica, javascript, libreria, nodejs, package, programacion, rest, sdk, soap, typescript, webservice, wsaa
- Language: TypeScript
- Homepage: https://www.afipts.com/
- Size: 5.56 MB
- Stars: 76
- Watchers: 6
- Forks: 20
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
> ### ⚠️ AVISO DE MIGRACIÓN
>
> **Este proyecto ha evolucionado de `afip.ts` a Arca SDK.**
>
> El repositorio ha sido renombrado y el paquete ahora se publica como [`@arcasdk/core`](https://www.npmjs.com/package/@arcasdk/core).
>
> **¿Cómo seguir usando la versión anterior?**
> El código original de `afip.ts` se encuentra preservado en la rama [`afip.ts`](../../tree/afip.ts) y el paquete sigue disponible en npm como [`afip.ts`](https://www.npmjs.com/package/afip.ts).
>
> Todo el desarrollo futuro continuará en la rama `main` bajo el nuevo nombre.
# 🚀 Arca SDK

[](https://npmjs.org/package/@arcasdk/core)




Arca SDK
SDK para consumir y usar los Web Services de ARCA (ex AFIP)
Ver documentacion completa
Inspirado en afip.js
Reportar un bug
## Guia
### Instalación
##### NPM
```sh
npm i @arcasdk/core --save
```
##### Yarn
```sh
yarn add @arcasdk/core
```
### Uso de la SDK
##### Requisitos previos
Se debe tener los certificados emitidos por ARCA/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.
- [Guia de como obtenerlos](https://ralcorta.github.io/arcasdk/tutorial/enable_testing_certificates.html)
- [Documentacion oficial de certificados](https://www.afip.gob.ar/ws/documentacion/certificados.asp)
##### Ejemplo basico
Ejemplo de como generar factura electronica:
```ts
import { Arca } from "@arcasdk/core";
const arca: Arca = new Arca({
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)
CondicionIVAReceptorId: 1, // Condición de IVA del receptor
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 arca.electronicBillingService.createInvoice(payload);
```
Ejemplo de otros endpoints:
```ts
const points = await arca.electronicBillingService.getSalesPoints();
```
## Caracteristicas
Toda configuracion del package es pasada por el constructor de la clase `Arca` la cual recibe [Context](https://www.arcasdk.com/guide/config.html).
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](https://ralcorta.github.io/arcasdk).
## Desarrollo y contribuciones
### Contribuciones
Si encontras un bug o desaes sugerir algo, revisa de que no haya [issues](https://github.com/ralcorta/arcasdk/issues) con el mismo tema, y de ser asi [puedes generar uno aqui](https://github.com/ralcorta/arcasdk/issues/new).
### Desarrollo
Seria genial si puedes ayudarnos mejorando `arcasdk`. ¿Como hacer?
1. [Clonar](https://github.com/ralcorta/arcasdk).
2. `npm install`.
3. Rompela escribiendo tu codigo.
4. Correr los test: `npm test`.
5. Cear un [Pull Request](https://github.com/ralcorta/arcasdk/compare).
## Licencia
Este proyecto esta bajo la licencia `MIT` - Ver [LICENSE](LICENSE) para mas detalles.
Este software y sus desarrolladores no tienen ninguna relación con la ARCA/AFIP.
