keycae-ts 1.1.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -48,6 +48,42 @@ console.log(`CAE: ${invoice.cae}`);
48
48
  console.log(`PDF: ${invoice.url_pdf}`);
49
49
  ```
50
50
 
51
+ ### Precios netos (sin IVA)
52
+
53
+ Por defecto `conceptos[].precio` se envía con IVA incluido. Si tu sistema maneja precios netos, pasá `iva_incluido: false` y KeyCAE calcula el IVA automáticamente:
54
+
55
+ ```typescript
56
+ const invoice = await client.emitInvoice({
57
+ cuit_emisor: '20254459306',
58
+ punto_de_venta: 1,
59
+ tipo_comprobante: 'A',
60
+ iva_incluido: false, // conceptos[].precio son netos
61
+ receptor: { tipo_doc: 'CUIT', nro_doc: '30999888776' },
62
+ conceptos: [{ descripcion: 'Servicio profesional', precio: 1000, alicuota_iva: 21 }]
63
+ }, 'idempotency_key_43');
64
+ // → Neto $1.000 | IVA 21% $210 | Total $1.210
65
+ ```
66
+
67
+ ### Datos fiscales del emisor en el PDF
68
+
69
+ Los datos del emisor que se imprimen en el PDF (razón social, domicilio, Ingresos Brutos, inicio de actividades) se pueden enviar **por comprobante**. Tienen prioridad sobre la configuración de la cuenta y **no requieren cuenta ni login** (funcionan también en sandbox):
70
+
71
+ ```typescript
72
+ const invoice = await client.emitInvoice({
73
+ cuit_emisor: '20254459306',
74
+ punto_de_venta: 1,
75
+ tipo_comprobante: 'B',
76
+ emisor_razon_social: 'Mi Empresa S.A.',
77
+ emisor_ingresos_brutos: '901-999999-9',
78
+ emisor_direccion: 'Av. Corrientes 1500, CABA',
79
+ emisor_inicio_actividades: '01/03/2021',
80
+ receptor: { tipo_doc: 'SIN_IDENTIFICAR', nro_doc: '0' },
81
+ conceptos: [{ descripcion: 'Producto', precio: 1210 }]
82
+ });
83
+ ```
84
+
85
+ Los cuatro campos `emisor_*` son opcionales; enviá sólo los que quieras que aparezcan.
86
+
51
87
  ## Modelos de Conexión
52
88
 
53
89
  ### Modalidad A: Delegación Directa (Recomendada)
package/dist/index.d.ts CHANGED
@@ -50,6 +50,13 @@ export interface InvoiceInput {
50
50
  tipo_comprobante: 'A' | 'B' | 'C' | 'M' | 'E' | 'NCA' | 'NCB' | 'NCC' | 'NCE' | 'NCM' | 'NDA' | 'NDB' | 'NDC' | 'NDE' | 'NDM' | 'FCE_A' | 'FCE_B' | 'FCE_C' | 'FCE_NDA' | 'FCE_NDB' | 'FCE_NDC' | 'FCE_NCA' | 'FCE_NCB' | 'FCE_NCC';
51
51
  receptor: InvoiceReceptor;
52
52
  conceptos: InvoiceItem[];
53
+ /**
54
+ * Default `true`: los `conceptos[].precio` se envían con IVA incluido (precio final).
55
+ * Con `false`, los precios se interpretan como netos (sin IVA) y KeyCAE calcula
56
+ * y adiciona el IVA según la `alicuota_iva` de cada ítem.
57
+ * Sin efecto en comprobantes sin discriminación de IVA (tipo C / E).
58
+ */
59
+ iva_incluido?: boolean;
53
60
  tributos?: Tributo[];
54
61
  moneda?: string;
55
62
  moneda_cotizacion?: number;
@@ -61,6 +68,16 @@ export interface InvoiceInput {
61
68
  opcionales?: Opcional[];
62
69
  brand_logo_url?: string;
63
70
  brand_color?: string;
71
+ /**
72
+ * Datos fiscales del emisor a imprimir en el PDF. Override por comprobante:
73
+ * tienen prioridad sobre la configuración de la cuenta (Personalizar PDF) y
74
+ * no requieren cuenta ni login, por lo que funcionan también desde sandbox.
75
+ * Cada campo se resuelve de forma independiente.
76
+ */
77
+ emisor_razon_social?: string;
78
+ emisor_direccion?: string;
79
+ emisor_ingresos_brutos?: string;
80
+ emisor_inicio_actividades?: string;
64
81
  cbtes_asociados?: {
65
82
  tipo: string | number;
66
83
  punto_de_venta: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "keycae-ts",
3
- "version": "1.1.0",
3
+ "version": "1.3.0",
4
4
  "description": "Official TypeScript & JavaScript SDK client for KeyCAE.ar impositive compliance API (ARCA)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/index.ts CHANGED
@@ -65,6 +65,13 @@ export interface InvoiceInput {
65
65
  | 'FCE_NCA' | 'FCE_NCB' | 'FCE_NCC';
66
66
  receptor: InvoiceReceptor;
67
67
  conceptos: InvoiceItem[];
68
+ /**
69
+ * Default `true`: los `conceptos[].precio` se envían con IVA incluido (precio final).
70
+ * Con `false`, los precios se interpretan como netos (sin IVA) y KeyCAE calcula
71
+ * y adiciona el IVA según la `alicuota_iva` de cada ítem.
72
+ * Sin efecto en comprobantes sin discriminación de IVA (tipo C / E).
73
+ */
74
+ iva_incluido?: boolean;
68
75
  tributos?: Tributo[];
69
76
  moneda?: string;
70
77
  moneda_cotizacion?: number;
@@ -76,6 +83,16 @@ export interface InvoiceInput {
76
83
  opcionales?: Opcional[];
77
84
  brand_logo_url?: string;
78
85
  brand_color?: string;
86
+ /**
87
+ * Datos fiscales del emisor a imprimir en el PDF. Override por comprobante:
88
+ * tienen prioridad sobre la configuración de la cuenta (Personalizar PDF) y
89
+ * no requieren cuenta ni login, por lo que funcionan también desde sandbox.
90
+ * Cada campo se resuelve de forma independiente.
91
+ */
92
+ emisor_razon_social?: string;
93
+ emisor_direccion?: string;
94
+ emisor_ingresos_brutos?: string;
95
+ emisor_inicio_actividades?: string;
79
96
  cbtes_asociados?: {
80
97
  tipo: string | number;
81
98
  punto_de_venta: number;