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 +36 -0
- package/dist/index.d.ts +17 -0
- package/package.json +1 -1
- package/src/index.ts +17 -0
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
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;
|