@ramiidv/arca-mtxca 0.4.0 → 0.6.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/dist/types.d.ts CHANGED
@@ -10,15 +10,11 @@ export interface ArcaMtxcaConfig extends ArcaSdkConfig {
10
10
  wsaa?: string;
11
11
  };
12
12
  /**
13
- * URL de WSMTXCA. Si se indica, ignora `production`.
14
- * @deprecated Usar `endpoints.mtxca` (tiene prioridad si se indican ambas).
13
+ * Recibe el `evento` (aviso informativo de ARCA) de cualquier respuesta que
14
+ * lo traiga, incluidas las que devuelven un número o una lista. Los errores
15
+ * del callback se ignoran.
15
16
  */
16
- endpoint?: string;
17
- /**
18
- * URL de WSAA. Si se indica, ignora `production` para el login.
19
- * @deprecated Usar `endpoints.wsaa` (tiene prioridad si se indican ambas).
20
- */
21
- wsaaEndpoint?: string;
17
+ onEvento?: (evento: CodigoDescripcion, method: string) => void;
22
18
  }
23
19
  /** Credenciales de cada request (`AuthRequestType`). */
24
20
  export interface MtxcaAuth {
@@ -55,7 +51,11 @@ export interface MtxcaItem {
55
51
  importeBonificacion?: number;
56
52
  /** Condición de IVA del ítem (`CodigoCondicionIVA`). */
57
53
  codigoCondicionIVA: number;
58
- /** IVA del ítem (2 decimales). Obligatorio en clase A (1, 2, 3, 51, 52, 53); no corresponde en 6, 7, 8. */
54
+ /**
55
+ * IVA del ítem (2 decimales). Obligatorio en clase A (1, 2, 3, 51, 52, 53); no
56
+ * corresponde en 6, 7, 8 (514). En FCE (201-208) el manual no lo exige ni
57
+ * valida su fórmula.
58
+ */
59
59
  importeIVA?: number;
60
60
  /** Importe del ítem con IVA incluido (2 decimales). Negativo en unidad 95/99. */
61
61
  importeItem: number;
@@ -112,7 +112,11 @@ export interface MtxcaComprobanteBase {
112
112
  fechaEmision?: FechaInput;
113
113
  codigoTipoDocumento?: number;
114
114
  numeroDocumento?: number | string;
115
- /** Condición de IVA del receptor, RG 5616 (`getCondicionesIVAReceptor()`). */
115
+ /**
116
+ * Condición de IVA del receptor, RG 5616 (`getCondicionesIVAReceptor()`).
117
+ * Obligatoria: `autorizar()` e `informarComprobanteCAEA()` la exigen
118
+ * localmente (ARCA observa 190 / 390 y pasará a rechazar).
119
+ */
116
120
  condicionIVAReceptor?: number;
117
121
  importeGravado?: number;
118
122
  importeNoGravado?: number;
@@ -125,6 +129,7 @@ export interface MtxcaComprobanteBase {
125
129
  codigoMoneda: string;
126
130
  /** Cotización (6 decimales). Debe ser 1 para PES. */
127
131
  cotizacionMoneda?: number;
132
+ /** "S" solo en los tipos 1, 6, 51, 201 y 206 (118), con moneda extranjera (169). */
128
133
  cancelaEnMismaMonedaExtranjera?: 'S' | 'N';
129
134
  observaciones?: string;
130
135
  codigoConcepto: number;
@@ -132,14 +137,24 @@ export interface MtxcaComprobanteBase {
132
137
  fechaServicioDesde?: FechaInput;
133
138
  /** Obligatoria si `codigoConcepto` es 2 o 3. */
134
139
  fechaServicioHasta?: FechaInput;
135
- /** Obligatoria si `codigoConcepto` es 2 o 3. */
140
+ /**
141
+ * Obligatoria si `codigoConcepto` es 2 o 3 (124). En FCE no depende del
142
+ * concepto: obligatoria en 201 y 206 (148) y no corresponde en 202, 203, 207
143
+ * y 208 (149).
144
+ */
136
145
  fechaVencimientoPago?: FechaInput;
146
+ /** En ND/NC 2, 3, 7, 8, 52, 53: obligatorio este o `periodoComprobantesAsociados`, no ambos (160, 161). */
137
147
  comprobantesAsociados?: MtxcaComprobanteAsociado[];
138
148
  periodoComprobantesAsociados?: MtxcaPeriodo;
149
+ /** En FCE, cada tributo lleva `descripcion` (302). */
139
150
  otrosTributos?: MtxcaOtroTributo[];
140
151
  items: MtxcaItem[];
141
152
  subtotalesIVA?: MtxcaSubtotalIVA[];
142
153
  datosAdicionales?: MtxcaDatoAdicional[];
154
+ /**
155
+ * Solo con `codigoConcepto` 1 (432); en FCE, uno solo (433). No se admite en
156
+ * `informarComprobanteCAEA` (753).
157
+ */
143
158
  compradores?: MtxcaComprador[];
144
159
  /** Códigos de actividad (`getActividadesVigentes()`). */
145
160
  actividades?: number[];
@@ -252,6 +267,8 @@ export interface MtxcaCAEA {
252
267
  fechaHasta: string;
253
268
  fechaTopeInforme: string;
254
269
  observaciones: CodigoDescripcion[];
270
+ /** Anuncio informativo del sistema (`solicitarCAEA` / `consultarCAEA`), si lo hay. */
271
+ evento?: CodigoDescripcion;
255
272
  }
256
273
  /**
257
274
  * Respuesta de `informarCAEANoUtilizado` / `informarCAEANoUtilizadoPtoVta`.
@@ -361,5 +378,7 @@ export interface CotizacionResult {
361
378
  fechaCotizacion: string;
362
379
  /** Cotización, o `null` si ARCA no tiene cotización para esa moneda (respuesta sin valor, sin error). */
363
380
  cotizacion: number | null;
381
+ /** Anuncio informativo del sistema, si lo hay. */
382
+ evento?: CodigoDescripcion;
364
383
  }
365
384
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,12 @@
1
1
  import type { ValidationErrorDetail } from '@ramiidv/arca-common';
2
2
  import type { MtxcaComprobanteBase } from './types.js';
3
3
  /**
4
- * Valida las reglas de ítems que el manual marca como excluyentes para
5
- * `informarComprobanteCAEA` (1100-1112, 1121) y el par tipo/número de documento (707).
4
+ * Valida las reglas que el manual marca como excluyentes para
5
+ * `informarComprobanteCAEA`: presencia de campos de los ítems (1100-1112,
6
+ * 1121), par tipo/número de documento (707), condición de IVA del receptor
7
+ * (390, RG 5616), `fechaVencimientoPago` en FCE (764, 765), comprobantes
8
+ * asociados de notas de débito/crédito (778, 779), compradores (753) y
9
+ * `fechaHoraGen` (754: obligatoria para todo comprobante CAEA desde el 01/08/2026).
6
10
  *
7
11
  * @throws ArcaValidationError
8
12
  */
@@ -14,8 +18,11 @@ export declare function reglasComprobanteCAEA(c: MtxcaComprobanteBase, errors: V
14
18
  * las validaciones excluyentes del manual: presencia de campos por unidad de
15
19
  * medida y tipo de comprobante, fórmulas de importe e IVA por ítem, subtotales
16
20
  * de IVA por alícuota y la coherencia de gravado/no gravado/exento/subtotal/
17
- * otros tributos/total, con el margen de error del manual. Usa los importes ya
18
- * redondeados como se envían (2 decimales; 6 en cantidad y precio).
21
+ * otros tributos/total, con el margen de error del manual; además, fechas por
22
+ * concepto y FCE (122-124, 148, 149), condición de IVA del receptor (190, RG
23
+ * 5616), comprobantes asociados (160, 161), moneda (118, 120, 169, 194),
24
+ * tributos (301, 302) y compradores (432, 433). Usa los importes ya
25
+ * redondeados como se envían (mitad al par; 2 decimales, 6 en cantidad y precio).
19
26
  *
20
27
  * No reemplaza las validaciones de padrón que hace ARCA (CUIT activa, punto de
21
28
  * venta habilitado, correlatividad, etc.).
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAGlE,OAAO,KAAK,EAAc,oBAAoB,EAAa,MAAM,YAAY,CAAC;AAmG9E;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAIrE;AAED,kGAAkG;AAClG,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,oBAAoB,EAAE,MAAM,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAQpG;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAIpE;AAED,iGAAiG;AACjG,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,oBAAoB,EAAE,MAAM,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAwQnG"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAGlE,OAAO,KAAK,EAAc,oBAAoB,EAAa,MAAM,YAAY,CAAC;AA4G9E;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAIrE;AAED,kGAAkG;AAClG,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,oBAAoB,EAAE,MAAM,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAepG;AA0DD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAIpE;AAED,iGAAiG;AACjG,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,oBAAoB,EAAE,MAAM,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAmTnG"}
@@ -16,6 +16,15 @@ const RECEPTOR_CUIT = new Set([1, 2, 3, 51, 52, 53, 201, 202, 203, 206, 207, 208
16
16
  /** Condiciones de IVA gravadas (110) y las que llevan subtotal de IVA (127, 400). */
17
17
  const GRAVADAS = new Set([3, 4, 5, 6]);
18
18
  const CON_SUBTOTAL = new Set([4, 5, 6]);
19
+ /** Facturas de Crédito Electrónica MiPyME: exigen `fechaVencimientoPago` (148 / 764). */
20
+ const FCE_FACTURA = new Set([201, 206]);
21
+ /** Notas de débito/crédito FCE: no llevan `fechaVencimientoPago` (149 / 765). */
22
+ const FCE_NOTA = new Set([202, 203, 207, 208]);
23
+ const esFCE = (tipo) => FCE_FACTURA.has(tipo) || FCE_NOTA.has(tipo);
24
+ /** Notas de débito/crédito que exigen comprobantes asociados o período (160, 161 / 778, 779). */
25
+ const NOTA_CON_ASOCIADOS = new Set([2, 3, 7, 8, 52, 53]);
26
+ /** Tipos que admiten `cancelaEnMismaMonedaExtranjera` = "S" (118). */
27
+ const CANCELA_MISMA_MONEDA = new Set([1, 6, 51, 201, 206]);
19
28
  const SENA = 97;
20
29
  const BONIFICACION = 99;
21
30
  const ANULACION = 95;
@@ -86,8 +95,12 @@ function itemsDe(c) {
86
95
  return Array.isArray(c?.items) ? c.items.filter((i) => i !== null && typeof i === 'object') : [];
87
96
  }
88
97
  /**
89
- * Valida las reglas de ítems que el manual marca como excluyentes para
90
- * `informarComprobanteCAEA` (1100-1112, 1121) y el par tipo/número de documento (707).
98
+ * Valida las reglas que el manual marca como excluyentes para
99
+ * `informarComprobanteCAEA`: presencia de campos de los ítems (1100-1112,
100
+ * 1121), par tipo/número de documento (707), condición de IVA del receptor
101
+ * (390, RG 5616), `fechaVencimientoPago` en FCE (764, 765), comprobantes
102
+ * asociados de notas de débito/crédito (778, 779), compradores (753) y
103
+ * `fechaHoraGen` (754: obligatoria para todo comprobante CAEA desde el 01/08/2026).
91
104
  *
92
105
  * @throws ArcaValidationError
93
106
  */
@@ -98,11 +111,69 @@ export function validateComprobanteCAEA(c) {
98
111
  }
99
112
  /** Igual que `validateComprobanteCAEA`, pero agrega los errores a `errors` en lugar de lanzar. */
100
113
  export function reglasComprobanteCAEA(c, errors) {
114
+ const add = (field, message, value) => errors.push({ field, message, value });
101
115
  itemsDe(c).forEach((item, i) => validarItemEstructura(item, i, c.codigoTipoComprobante, errors));
102
116
  if ((c.codigoTipoDocumento === undefined) !== (c.numeroDocumento === undefined)) {
117
+ add('numeroDocumento', 'codigoTipoDocumento y numeroDocumento se informan juntos (707)');
118
+ }
119
+ reglaCondicionIVAReceptor(c, 390, errors);
120
+ reglasFCE(c, [764, 765], errors);
121
+ reglasAsociados(c, [778, 779], errors);
122
+ if (Array.isArray(c.compradores) && c.compradores.length > 0) {
123
+ add('compradores', 'no se admiten en informarComprobanteCAEA (753)');
124
+ }
125
+ if (c.fechaHoraGen === undefined) {
126
+ add('fechaHoraGen', 'es obligatoria para comprobantes CAEA desde el 01/08/2026 (754)');
127
+ }
128
+ }
129
+ /** RG 5616: la condición de IVA del receptor es obligatoria (190 en CAE, 390 en CAEA). */
130
+ function reglaCondicionIVAReceptor(c, codigo, errors) {
131
+ if (c.condicionIVAReceptor === undefined) {
132
+ errors.push({
133
+ field: 'condicionIVAReceptor',
134
+ message: `es obligatoria (RG 5616; ver getCondicionesIVAReceptor()) (${codigo})`,
135
+ });
136
+ }
137
+ }
138
+ /**
139
+ * `fechaVencimientoPago` en FCE: obligatoria en 201/206 y no corresponde en
140
+ * 202/203/207/208, cualquiera sea el concepto (148/149 en CAE, 764/765 en CAEA).
141
+ */
142
+ function reglasFCE(c, [obligatoria, prohibida], errors) {
143
+ const tipo = c.codigoTipoComprobante;
144
+ if (FCE_FACTURA.has(tipo) && c.fechaVencimientoPago === undefined) {
103
145
  errors.push({
104
- field: 'numeroDocumento',
105
- message: 'codigoTipoDocumento y numeroDocumento se informan juntos (707)',
146
+ field: 'fechaVencimientoPago',
147
+ message: `es obligatoria en Facturas de Crédito Electrónica MiPyME (${obligatoria})`,
148
+ });
149
+ }
150
+ if (FCE_NOTA.has(tipo) && c.fechaVencimientoPago !== undefined) {
151
+ errors.push({
152
+ field: 'fechaVencimientoPago',
153
+ message: `no corresponde en notas de débito/crédito de FCE MiPyME (${prohibida})`,
154
+ value: c.fechaVencimientoPago,
155
+ });
156
+ }
157
+ }
158
+ /**
159
+ * Notas de débito/crédito 2, 3, 7, 8, 52, 53: comprobantes asociados o período,
160
+ * pero no los dos (160/161 en CAE, 778/779 en CAEA).
161
+ */
162
+ function reglasAsociados(c, [falta, ambos], errors) {
163
+ if (!NOTA_CON_ASOCIADOS.has(c.codigoTipoComprobante))
164
+ return;
165
+ const asociados = Array.isArray(c.comprobantesAsociados) && c.comprobantesAsociados.length > 0;
166
+ const periodo = c.periodoComprobantesAsociados !== undefined;
167
+ if (!asociados && !periodo) {
168
+ errors.push({
169
+ field: 'comprobantesAsociados',
170
+ message: `una nota de débito/crédito requiere comprobantesAsociados o periodoComprobantesAsociados (${falta})`,
171
+ });
172
+ }
173
+ else if (asociados && periodo) {
174
+ errors.push({
175
+ field: 'periodoComprobantesAsociados',
176
+ message: `no corresponde si se informan comprobantesAsociados (${ambos})`,
106
177
  });
107
178
  }
108
179
  }
@@ -111,8 +182,11 @@ export function reglasComprobanteCAEA(c, errors) {
111
182
  * las validaciones excluyentes del manual: presencia de campos por unidad de
112
183
  * medida y tipo de comprobante, fórmulas de importe e IVA por ítem, subtotales
113
184
  * de IVA por alícuota y la coherencia de gravado/no gravado/exento/subtotal/
114
- * otros tributos/total, con el margen de error del manual. Usa los importes ya
115
- * redondeados como se envían (2 decimales; 6 en cantidad y precio).
185
+ * otros tributos/total, con el margen de error del manual; además, fechas por
186
+ * concepto y FCE (122-124, 148, 149), condición de IVA del receptor (190, RG
187
+ * 5616), comprobantes asociados (160, 161), moneda (118, 120, 169, 194),
188
+ * tributos (301, 302) y compradores (432, 433). Usa los importes ya
189
+ * redondeados como se envían (mitad al par; 2 decimales, 6 en cantidad y precio).
116
190
  *
117
191
  * No reemplaza las validaciones de padrón que hace ARCA (CUIT activa, punto de
118
192
  * venta habilitado, correlatividad, etc.).
@@ -141,14 +215,21 @@ export function reglasComprobanteCAE(c, errors) {
141
215
  else if (c.codigoTipoDocumento !== 80)
142
216
  add('codigoTipoDocumento', `debe ser 80 (CUIT) para el tipo de comprobante ${tipo} (129)`, c.codigoTipoDocumento);
143
217
  }
218
+ reglaCondicionIVAReceptor(c, 190, errors);
219
+ // 122-124 por concepto; en FCE, fechaVencimientoPago sigue 148/149.
144
220
  const servicios = c.codigoConcepto === 2 || c.codigoConcepto === 3;
145
- for (const campo of ['fechaServicioDesde', 'fechaServicioHasta', 'fechaVencimientoPago']) {
221
+ const campos = esFCE(tipo)
222
+ ? ['fechaServicioDesde', 'fechaServicioHasta']
223
+ : ['fechaServicioDesde', 'fechaServicioHasta', 'fechaVencimientoPago'];
224
+ for (const campo of campos) {
146
225
  const presente = c[campo] !== undefined;
147
226
  if (servicios && !presente)
148
227
  add(campo, 'es obligatoria si codigoConcepto es 2 o 3 (122-124)');
149
228
  if (!servicios && presente)
150
229
  add(campo, 'solo corresponde si codigoConcepto es 2 o 3 (122-124)', c[campo]);
151
230
  }
231
+ reglasFCE(c, [148, 149], errors);
232
+ reglasAsociados(c, [160, 161], errors);
152
233
  const fecha = (v) => {
153
234
  if (v === undefined)
154
235
  return undefined;
@@ -177,13 +258,27 @@ export function reglasComprobanteCAE(c, errors) {
177
258
  if (c.cancelaEnMismaMonedaExtranjera === 'S')
178
259
  add('cancelaEnMismaMonedaExtranjera', 'no corresponde con codigoMoneda PES (169)', 'S');
179
260
  }
261
+ if (c.cancelaEnMismaMonedaExtranjera === 'S' && !CANCELA_MISMA_MONEDA.has(tipo)) {
262
+ add('cancelaEnMismaMonedaExtranjera', 'solo corresponde en los tipos 1, 6, 51, 201 y 206 (118)', 'S');
263
+ }
180
264
  if (c.cotizacionMoneda === undefined && c.cancelaEnMismaMonedaExtranjera !== 'S') {
181
265
  add('cotizacionMoneda', 'es obligatoria salvo cancelaEnMismaMonedaExtranjera = "S" (194)');
182
266
  }
183
267
  (c.otrosTributos ?? []).forEach((t, i) => {
184
- if (t?.codigo === 99 && !t.descripcion)
268
+ if (t?.descripcion)
269
+ return;
270
+ if (esFCE(tipo))
271
+ add(`otrosTributos[${i}].descripcion`, 'es obligatoria en FCE MiPyME (302)');
272
+ else if (t?.codigo === 99)
185
273
  add(`otrosTributos[${i}].descripcion`, 'es obligatoria si codigo es 99 (301)');
186
274
  });
275
+ const compradores = Array.isArray(c.compradores) ? c.compradores : [];
276
+ if (compradores.length > 0 && c.codigoConcepto !== 1) {
277
+ add('compradores', 'solo corresponden si codigoConcepto es 1 (productos) (432)');
278
+ }
279
+ if (compradores.length > 1 && esFCE(tipo)) {
280
+ add('compradores', 'una FCE MiPyME no admite compradores múltiples (433)');
281
+ }
187
282
  // --- Ítems ---------------------------------------------------------------
188
283
  const ivaItem = [];
189
284
  items.forEach((item, i) => {
@@ -256,6 +351,20 @@ export function reglasComprobanteCAE(c, errors) {
256
351
  }
257
352
  }
258
353
  });
354
+ // Bonificaciones (99): |Σ IVA| <= IVA del resto de los ítems de la condición (516).
355
+ if (ITEM_CON_IVA.has(tipo)) {
356
+ const condiciones = new Set(items.filter((it) => it.codigoUnidadMedida === BONIFICACION).map((it) => it.codigoCondicionIVA));
357
+ for (const cond of condiciones) {
358
+ const deCond = items.filter((it) => it.codigoCondicionIVA === cond);
359
+ const bonif = deCond.filter((it) => it.codigoUnidadMedida === BONIFICACION);
360
+ const ivaBonif = Math.abs(sum(bonif.map((it) => imp(it.importeIVA))));
361
+ const ivaResto = sum(deCond.filter((it) => it.codigoUnidadMedida !== BONIFICACION).map((it) => imp(it.importeIVA)));
362
+ if (ivaBonif > ivaResto && !dentroDelMargen(ivaBonif, ivaResto, deCond.length)) {
363
+ const k = items.indexOf(bonif[0]);
364
+ add(`items[${k}].importeIVA`, `el IVA de las bonificaciones con condición ${cond} (${fmt(ivaBonif)}) no puede superar el IVA de los ítems de esa condición = ${fmt(ivaResto)} (516)`, bonif[0].importeIVA);
365
+ }
366
+ }
367
+ }
259
368
  // --- Subtotales de IVA (127, 400-405) -----------------------------------
260
369
  const subtotales = c.subtotalesIVA ?? [];
261
370
  const codigosConIVA = new Set(items.filter((i) => CON_SUBTOTAL.has(i.codigoCondicionIVA)).map((i) => i.codigoCondicionIVA));
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}
package/llms.txt CHANGED
@@ -1,11 +1,13 @@
1
1
  # @ramiidv/arca-mtxca
2
2
 
3
- > TypeScript SDK para el web service WSMTXCA de ARCA (ex AFIP): factura electrónica con detalle de ítems, con CAE y CAEA. ESM, Node >= 18.
3
+ > TypeScript SDK para el web service WSMTXCA de ARCA (ex AFIP): factura electrónica con detalle de ítems, con CAE y CAEA.
4
4
 
5
5
  ## Instalación
6
6
 
7
7
  npm install @ramiidv/arca-mtxca
8
8
 
9
+ Requisitos: Node >= 20.19. Solo ESM; desde CommonJS se carga con `require()` (require(esm)). Depende de `@ramiidv/arca-common`.
10
+
9
11
  ## Configuración
10
12
 
11
13
  ```typescript
@@ -16,7 +18,7 @@ const mtxca = new ArcaMtxca({
16
18
  key: string, // PEM
17
19
  cuit: number | string, // CUIT representada; se valida el dígito verificador
18
20
  production?: boolean, // default false (homologación)
19
- endpoints?: { mtxca?: string, wsaa?: string }, // overrides (endpoint/wsaaEndpoint: deprecated)
21
+ endpoints?: { mtxca?: string, wsaa?: string }, // overrides
20
22
  wsaa?: WsaaClient, // WsaaClient compartido
21
23
  signal?: AbortSignal, // cancela todas las llamadas
22
24
  timeout?: number, retries?: number, retryDelayMs?: number,
@@ -24,9 +26,12 @@ const mtxca = new ArcaMtxca({
24
26
  clockOffsetMs?: number, autoClockSkew?: boolean, loginErrorCooldownMs?: number,
25
27
  fetch?: typeof fetch, legacyTls?: 'auto' | 'never' | 'always',
26
28
  onEvent?: (event: ArcaEvent) => void,
29
+ onEvento?: (evento: { codigo, descripcion }, method: string) => void, // `evento` de ARCA de cualquier respuesta
27
30
  });
28
31
  ```
29
32
 
33
+ `ArcaMtxcaConfig` extiende `ArcaSdkConfig` de `@ramiidv/arca-common` (incluye `wsaa` y `signal`).
34
+
30
35
  Endpoints: homologación https://fwshomo.afip.gov.ar/wsmtxca/services/MTXCAService, producción https://serviciosjava.afip.gob.ar/wsmtxca/services/MTXCAService. Namespace http://impl.service.wsmtxca.afip.gov.ar/service/, SOAPAction = namespace + operación, wrappers `{operacion}Request` / `{operacion}Response`.
31
36
 
32
37
  Todos los métodos aceptan `opts?: { signal?: AbortSignal }` como último parámetro.
@@ -42,14 +47,14 @@ const res = await mtxca.autorizar({
42
47
  numeroComprobante?: number, // omitido => último + 1
43
48
  fechaEmision?: Date | string,
44
49
  codigoTipoDocumento: 80, numeroDocumento: '30000000007',
45
- condicionIVAReceptor: 1, // RG 5616, ver getCondicionesIVAReceptor(tipo)
50
+ condicionIVAReceptor: 1, // RG 5616, obligatoria (190/390), ver getCondicionesIVAReceptor(tipo)
46
51
  importeGravado: 100, importeNoGravado: 0, importeExento: 0,
47
52
  importeSubtotal: 100, // obligatorio
48
53
  importeOtrosTributos?: number,
49
54
  importeTotal: 121, // obligatorio
50
55
  codigoMoneda: 'PES', // obligatorio
51
56
  cotizacionMoneda: 1,
52
- codigoConcepto: 1, // 2/3 exigen fechaServicioDesde/Hasta y fechaVencimientoPago
57
+ codigoConcepto: 1, // 2/3 exigen fechaServicioDesde/Hasta y fechaVencimientoPago (salvo FCE)
53
58
  items: [{
54
59
  unidadesMtx: 1, codigoMtx: '7790001000012', // obligatorios salvo unidad 97/99
55
60
  codigo?: string, descripcion: 'Producto',
@@ -68,14 +73,22 @@ if (res.resultado === 'R') res.errores; // rechazo: NO lanza
68
73
  else res.comprobante.cae, res.comprobante.fechaVencimientoCAE; // 'A' u 'O' (con observaciones)
69
74
  ```
70
75
 
71
- Reglas validadas localmente (manual WSMTXCA): importeItem = (precio*cantidad - bonif)*(1+alícuota) en clase A (precio sin IVA) y precio*cantidad - bonif en clase B (precio con IVA); importeGravado = Σ(importeItem - IVA) de condiciones 3-6; importeNoGravado = Σ condición 1; importeExento = Σ condición 2; importeSubtotal = gravado + no gravado + exento; importeTotal = subtotal + otros tributos + Σ subtotalesIVA = otros tributos + Σ importeItem. Margen: relativo <= 0.01% o absoluto <= 0.01 por elemento. Redondeo: importes 2 decimales, cantidad/precio/bonificación/cotización 6 (`roundImporte`, `roundDecimal`).
76
+ Reglas validadas localmente (manual WSMTXCA): importeItem = (precio*cantidad - bonif)*(1+alícuota) en clase A (precio sin IVA) y precio*cantidad - bonif en clase B (precio con IVA); importeGravado = Σ(importeItem - IVA) de condiciones 3-6; importeNoGravado = Σ condición 1; importeExento = Σ condición 2; importeSubtotal = gravado + no gravado + exento; importeTotal = subtotal + otros tributos + Σ subtotalesIVA = otros tributos + Σ importeItem. Margen: relativo <= 0.01% o absoluto <= 0.01 por elemento. Bonificación (99) en clase A: |Σ IVA| <= IVA de los demás ítems de la condición (516). Redondeo Round Half Even (mitad al par, nota 4 del manual: 8.565 -> 8.56, 8.575 -> 8.58): importes 2 decimales, cantidad/precio/bonificación/cotización 6 (`roundImporte`, `roundDecimal`).
77
+
78
+ Otras reglas validadas (código CAE / CAEA):
79
+ - condicionIVAReceptor obligatoria (190 / 390; ARCA hoy observa, el SDK la exige).
80
+ - FCE 201/206: fechaVencimientoPago obligatoria cualquiera sea el concepto (148 / 764); FCE 202/203/207/208: no corresponde (149 / 765). Fuera de FCE: fechas de servicio y vencimiento solo con concepto 2/3 (122-124, solo CAE).
81
+ - FCE: otrosTributos[].descripcion obligatoria (302); un solo comprador (433). compradores solo con concepto 1 (432); en informarComprobanteCAEA no se admiten (753).
82
+ - ND/NC 2,3,7,8,52,53: comprobantesAsociados o periodoComprobantesAsociados, no ambos (160/161 / 778/779).
83
+ - cancelaEnMismaMonedaExtranjera 'S' solo en 1, 6, 51, 201, 206 (118, solo CAE).
84
+ - En FCE el ítem no exige importeIVA ni se valida su fórmula (514/515 aplican a 1,2,3,51,52,53).
72
85
 
73
86
  ## Errores
74
87
 
75
88
  - ArcaValidationError: datos inválidos (sin request). `details[]` con field/message.
76
89
  - autorizar / autorizarAjusteIVA / informar*: un rechazo devuelve resultado 'R' con errores.
77
90
  - Consultas: arrayErrores => ArcaServiceError (`errors[]` con code/msg).
78
- - ArcaSoapError: Fault/HTTP/red/timeout. En emisiones nunca se reintenta; `uncertain: true` => pudo procesarse.
91
+ - ArcaSoapError: Fault/HTTP/red/timeout/respuesta ilegible. En emisiones nunca se reintenta; `uncertain: true` => pudo procesarse (Fault Server, timeout, 5xx). Fault Client (ej. "Token vencido") no es incierto.
79
92
  Recuperación: `ultimoComprobante(ptoVta, tipo)` y `consultarComprobante(tipo, ptoVta, nro)`; para solicitarCAEA, `consultarCAEAEntreFechas`.
80
93
  - `ultimoComprobante` devuelve 0 solo ante el error 1502 (sin comprobantes).
81
94
 
@@ -86,7 +99,8 @@ Reglas validadas localmente (manual WSMTXCA): importeItem = (precio*cantidad - b
86
99
  - ultimoComprobante(ptoVta, cbteTipo, opts?) -> number
87
100
  - siguienteComprobante(ptoVta, cbteTipo, opts?) -> number
88
101
  - consultarComprobante(cbteTipo, ptoVta, cbteNro, opts?) -> { comprobante, observaciones, evento? }
89
- - solicitarCAEA(periodo AAAAMM, orden 1|2, opts?) -> MtxcaCAEA { caea, fechaDesde, fechaHasta, fechaTopeInforme, ... }
102
+ - urlQR(comprobante, resultado?, options?) -> string: URL del QR (RG 4892) con la CUIT de la instancia. Con resultado de autorizar/informarComprobanteCAEA (tipoCodAut E/A), o sin resultado con el comprobante de consultarComprobante. Lanza ArcaValidationError si fue rechazado o falta la cotización. También `urlQR(cuit, comprobante, resultado?, options?)` exportada.
103
+ - solicitarCAEA(periodo AAAAMM, orden 1|2, opts?) -> MtxcaCAEA { caea, fechaDesde, fechaHasta, fechaTopeInforme, ..., evento? }
90
104
  - consultarCAEA(caea, opts?) -> MtxcaCAEA
91
105
  - consultarCAEAEntreFechas(desde, hasta, opts?) -> MtxcaCAEA[]
92
106
  - informarComprobanteCAEA({ ...comprobante, numeroComprobante, caea, fechaHoraGen? }, opts?) -> MtxcaInformarCAEAResult
@@ -97,7 +111,7 @@ Reglas validadas localmente (manual WSMTXCA): importeItem = (precio*cantidad - b
97
111
  - getTiposComprobante, getTiposDocumento, getAlicuotasIVA, getCondicionesIVA, getUnidadesMedida, getTiposTributo, getTiposDatosAdicionales -> { codigo: number, descripcion }[]
98
112
  - getCondicionesIVAReceptor(cbteTipo) -> { codigo, descripcion }[]
99
113
  - getMonedas() -> { codigo: string, descripcion }[]
100
- - getCotizacionMoneda(codigo, fecha = hoy) -> { codigoMoneda, fechaCotizacion, cotizacion: number | null }
114
+ - getCotizacionMoneda(codigo, fecha = hoy) -> { codigoMoneda, fechaCotizacion, cotizacion: number | null, evento? }
101
115
  - getActividadesVigentes() -> { codigo, orden, descripcion }[]
102
116
  - getPuntosVenta / getPuntosVentaCAE / getPuntosVentaCAEA -> { numeroPuntoVenta, bloqueado: 'S'|'N', fechaBaja? }[]
103
117
  - clearAuthCache(): Promise<void>
@@ -107,3 +121,7 @@ Bajo nivel: `mtxca.client` / `new MtxcaClient({ endpoint })`, una función por o
107
121
  ## Enums
108
122
 
109
123
  CbteTipo (1,2,3,6,7,8,51,52,53,201,202,203,206,207,208), Concepto (1,2,3), CodigoCondicionIVA (1 no gravado, 2 exento, 3 0%, 4 10.5%, 5 21%, 6 27%), UnidadMedidaEspecial (95, 97 seña, 99 bonificación), Moneda (PES, DOL, 060).
124
+
125
+ ## Ejemplos
126
+
127
+ https://github.com/ramiidv/arca-sdks/tree/main/packages/mtxca/examples
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ramiidv/arca-mtxca",
3
- "version": "0.4.0",
4
- "description": "TypeScript SDK para el web service WSMTXCA de ARCA (ex AFIP) - Facturacion electronica con detalle de articulos",
3
+ "version": "0.6.0",
4
+ "description": "TypeScript SDK para el web service WSMTXCA de ARCA (ex AFIP) - Facturación electrónica con detalle de artículos",
5
5
  "author": "ramiidv",
6
6
  "license": "MIT",
7
7
  "type": "module",
@@ -63,6 +63,6 @@
63
63
  "node": ">=20.19.0"
64
64
  },
65
65
  "dependencies": {
66
- "@ramiidv/arca-common": "^0.5.0"
66
+ "@ramiidv/arca-common": "^0.7.0"
67
67
  }
68
68
  }