@ramiidv/arca-sdk 0.3.0 → 1.1.3

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/wsfe.js CHANGED
@@ -1,5 +1,5 @@
1
- import { ENDPOINTS } from "./constants.js";
2
- import { wsfeSoapCall } from "./soap-client.js";
1
+ import { ENDPOINTS, WSFE_NAMESPACE } from "./constants.js";
2
+ import { afipSoapCall } from "./soap-client.js";
3
3
  import { ArcaWSFEError } from "./errors.js";
4
4
  function toArray(val) {
5
5
  if (val === undefined || val === null)
@@ -14,22 +14,27 @@ function checkErrors(result) {
14
14
  }
15
15
  export class WsfeClient {
16
16
  endpoint;
17
- timeoutMs;
18
- constructor(production, timeoutMs = 30_000) {
17
+ soapOpts;
18
+ constructor(production, opts = {}) {
19
19
  this.endpoint = production
20
20
  ? ENDPOINTS.wsfe.production
21
21
  : ENDPOINTS.wsfe.testing;
22
- this.timeoutMs = timeoutMs;
22
+ this.soapOpts = {
23
+ timeoutMs: opts.timeoutMs,
24
+ retries: opts.retries,
25
+ retryDelayMs: opts.retryDelayMs,
26
+ onEvent: opts.onEvent,
27
+ };
28
+ }
29
+ call(method, params) {
30
+ return afipSoapCall(this.endpoint, WSFE_NAMESPACE, method, params, this.soapOpts);
23
31
  }
24
32
  // ============================================================
25
33
  // Facturación
26
34
  // ============================================================
27
- /**
28
- * Solicita CAE (Código de Autorización Electrónica) para uno o más comprobantes.
29
- */
30
35
  async solicitarCAE(auth, request) {
31
36
  const detRequests = request.invoices.map((inv) => this.buildDetRequest(inv));
32
- const params = {
37
+ const result = (await this.call("FECAESolicitar", {
33
38
  Auth: auth,
34
39
  FeCAEReq: {
35
40
  FeCabReq: {
@@ -37,102 +42,128 @@ export class WsfeClient {
37
42
  PtoVta: request.PtoVta,
38
43
  CbteTipo: request.CbteTipo,
39
44
  },
40
- FeDetReq: {
41
- FECAEDetRequest: detRequests,
42
- },
45
+ FeDetReq: { FECAEDetRequest: detRequests },
43
46
  },
44
- };
45
- const result = (await wsfeSoapCall(this.endpoint, "FECAESolicitar", params, this.timeoutMs));
47
+ }));
46
48
  checkErrors(result);
47
49
  return result;
48
50
  }
49
- /**
50
- * Obtiene el último número de comprobante autorizado para un punto de venta y tipo.
51
- */
52
51
  async ultimoComprobante(auth, ptoVta, cbteTipo) {
53
- const result = (await wsfeSoapCall(this.endpoint, "FECompUltimoAutorizado", {
52
+ const result = (await this.call("FECompUltimoAutorizado", {
54
53
  Auth: auth,
55
54
  PtoVta: ptoVta,
56
55
  CbteTipo: cbteTipo,
57
- }, this.timeoutMs));
56
+ }));
58
57
  checkErrors(result);
59
- return result.CbteNro;
58
+ return Number(result.CbteNro);
60
59
  }
61
- /**
62
- * Consulta un comprobante previamente autorizado.
63
- */
64
60
  async consultarComprobante(auth, cbteTipo, ptoVta, cbteNro) {
65
- const result = (await wsfeSoapCall(this.endpoint, "FECompConsultar", {
61
+ const result = (await this.call("FECompConsultar", {
66
62
  Auth: auth,
67
- FeCompConsReq: {
68
- CbteTipo: cbteTipo,
69
- CbteNro: cbteNro,
70
- PtoVta: ptoVta,
71
- },
72
- }, this.timeoutMs));
63
+ FeCompConsReq: { CbteTipo: cbteTipo, CbteNro: cbteNro, PtoVta: ptoVta },
64
+ }));
73
65
  checkErrors(result);
74
66
  return result;
75
67
  }
76
68
  // ============================================================
77
69
  // Parámetros
78
70
  // ============================================================
79
- /**
80
- * Verifica el estado de los servidores de ARCA.
81
- */
82
71
  async serverStatus() {
83
- const result = await wsfeSoapCall(this.endpoint, "FEDummy", {}, this.timeoutMs);
84
- return result;
72
+ return (await this.call("FEDummy", {}));
85
73
  }
86
- /**
87
- * Obtiene los tipos de comprobante disponibles.
88
- */
89
74
  async getParam(auth, method, itemKey) {
90
- const result = (await wsfeSoapCall(this.endpoint, method, { Auth: auth }, this.timeoutMs));
75
+ const result = (await this.call(method, { Auth: auth }));
91
76
  checkErrors(result);
92
77
  return toArray(result.ResultGet?.[itemKey]);
93
78
  }
94
79
  async getTiposComprobante(auth) {
95
80
  return this.getParam(auth, "FEParamGetTiposCbte", "CbteTipo");
96
81
  }
97
- /** Obtiene los tipos de concepto disponibles. */
98
82
  async getTiposConcepto(auth) {
99
83
  return this.getParam(auth, "FEParamGetTiposConcepto", "ConceptoTipo");
100
84
  }
101
- /** Obtiene los tipos de documento disponibles. */
102
85
  async getTiposDocumento(auth) {
103
86
  return this.getParam(auth, "FEParamGetTiposDoc", "DocTipo");
104
87
  }
105
- /** Obtiene los tipos de IVA disponibles. */
106
88
  async getTiposIva(auth) {
107
89
  return this.getParam(auth, "FEParamGetTiposIva", "IvaTipo");
108
90
  }
109
- /** Obtiene las monedas disponibles. */
110
91
  async getMonedas(auth) {
111
92
  return this.getParam(auth, "FEParamGetTiposMonedas", "Moneda");
112
93
  }
113
- /** Obtiene los tipos de tributo disponibles. */
114
94
  async getTiposTributo(auth) {
115
95
  return this.getParam(auth, "FEParamGetTiposTributos", "TributoTipo");
116
96
  }
117
- /** Obtiene los tipos de opcionales disponibles. */
118
97
  async getTiposOpcional(auth) {
119
98
  return this.getParam(auth, "FEParamGetTiposOpcional", "OpcionalTipo");
120
99
  }
121
- /** Obtiene los puntos de venta habilitados. */
122
100
  async getPuntosVenta(auth) {
123
101
  return this.getParam(auth, "FEParamGetPtosVenta", "PtoVenta");
124
102
  }
125
- /** Obtiene la cotización de una moneda. */
126
103
  async getCotizacion(auth, monedaId) {
127
- const result = (await wsfeSoapCall(this.endpoint, "FEParamGetCotizacion", { Auth: auth, MonId: monedaId }, this.timeoutMs));
104
+ const result = (await this.call("FEParamGetCotizacion", {
105
+ Auth: auth,
106
+ MonId: monedaId,
107
+ }));
128
108
  checkErrors(result);
129
109
  return result;
130
110
  }
131
- /** Obtiene la cantidad máxima de registros por request de FECAESolicitar. */
132
111
  async getCantMaxRegistros(auth) {
133
- const result = (await wsfeSoapCall(this.endpoint, "FECompTotXRequest", { Auth: auth }, this.timeoutMs));
112
+ const result = (await this.call("FECompTotXRequest", {
113
+ Auth: auth,
114
+ }));
115
+ checkErrors(result);
116
+ return Number(result.RegXReq ?? 0);
117
+ }
118
+ // ============================================================
119
+ // CAEA - Autorización Anticipada
120
+ // ============================================================
121
+ async solicitarCAEA(auth, periodo, orden) {
122
+ const result = (await this.call("FECAEASolicitar", {
123
+ Auth: auth,
124
+ Periodo: periodo,
125
+ Orden: orden,
126
+ }));
127
+ checkErrors(result);
128
+ return result;
129
+ }
130
+ async consultarCAEA(auth, periodo, orden) {
131
+ const result = (await this.call("FECAEAConsultar", {
132
+ Auth: auth,
133
+ Periodo: periodo,
134
+ Orden: orden,
135
+ }));
134
136
  checkErrors(result);
135
- return result.RegXReq ?? 0;
137
+ return result;
138
+ }
139
+ async registrarCAEA(auth, request) {
140
+ const detRequests = request.invoices.map((inv) => {
141
+ const det = this.buildDetRequest(inv);
142
+ det.CAEA = inv.CAEA;
143
+ return det;
144
+ });
145
+ const result = (await this.call("FECAEARegInformativo", {
146
+ Auth: auth,
147
+ FeCAEARegInfReq: {
148
+ FeCabReq: {
149
+ CantReg: request.invoices.length,
150
+ PtoVta: request.PtoVta,
151
+ CbteTipo: request.CbteTipo,
152
+ },
153
+ FeDetReq: { FECAEADetRequest: detRequests },
154
+ },
155
+ }));
156
+ checkErrors(result);
157
+ return result;
158
+ }
159
+ async sinMovimientoCAEA(auth, caea, ptoVta) {
160
+ const result = (await this.call("FECAEASinMovimientoInformar", {
161
+ Auth: auth,
162
+ CAEA: caea,
163
+ PtoVta: ptoVta,
164
+ }));
165
+ checkErrors(result);
166
+ return result;
136
167
  }
137
168
  // ============================================================
138
169
  // Helpers
package/dist/wsfe.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"wsfe.js","sourceRoot":"","sources":["../src/wsfe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wsfe.js","sourceRoot":"","sources":["../src/wsfe.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import type { WsfeAuth, WsfexInvoice, WsfexAuthResult, WsfexGetCmpResult, WsfexParamItem, ServerStatus, ArcaEvent } from "./types.js";
2
+ export declare class WsfexClient {
3
+ private endpoint;
4
+ private soapOpts;
5
+ constructor(production: boolean, opts?: {
6
+ timeoutMs?: number;
7
+ retries?: number;
8
+ retryDelayMs?: number;
9
+ onEvent?: (event: ArcaEvent) => void;
10
+ });
11
+ private call;
12
+ /**
13
+ * Autoriza un comprobante de exportación.
14
+ */
15
+ authorize(auth: WsfeAuth, invoice: WsfexInvoice): Promise<WsfexAuthResult>;
16
+ /**
17
+ * Obtiene el último comprobante autorizado.
18
+ */
19
+ getLastCmp(auth: WsfeAuth, ptoVta: number, cbteTipo: number): Promise<number>;
20
+ /**
21
+ * Obtiene el último ID de request.
22
+ */
23
+ getLastId(auth: WsfeAuth): Promise<number>;
24
+ /**
25
+ * Consulta un comprobante de exportación.
26
+ */
27
+ getCmp(auth: WsfeAuth, cbteTipo: number, ptoVta: number, cbteNro: number): Promise<WsfexGetCmpResult>;
28
+ /**
29
+ * Verifica el estado de los servidores de WSFEX.
30
+ */
31
+ serverStatus(): Promise<ServerStatus>;
32
+ private getParamList;
33
+ /** Tipos de comprobante de exportación. */
34
+ getTiposCbte(auth: WsfeAuth): Promise<WsfexParamItem[]>;
35
+ /** Monedas disponibles. */
36
+ getMonedas(auth: WsfeAuth): Promise<WsfexParamItem[]>;
37
+ /** Países destino. */
38
+ getPaises(auth: WsfeAuth): Promise<WsfexParamItem[]>;
39
+ /** Idiomas disponibles. */
40
+ getIdiomas(auth: WsfeAuth): Promise<WsfexParamItem[]>;
41
+ /** Incoterms disponibles. */
42
+ getIncoterms(auth: WsfeAuth): Promise<WsfexParamItem[]>;
43
+ /** Unidades de medida. */
44
+ getUMed(auth: WsfeAuth): Promise<WsfexParamItem[]>;
45
+ /** Tipos de exportación. */
46
+ getTiposExpo(auth: WsfeAuth): Promise<WsfexParamItem[]>;
47
+ /** CUITs de países. */
48
+ getCuitsPais(auth: WsfeAuth): Promise<WsfexParamItem[]>;
49
+ }
50
+ //# sourceMappingURL=wsfex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wsfex.d.ts","sourceRoot":"","sources":["../src/wsfex.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,eAAe,EAGf,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,SAAS,EACV,MAAM,YAAY,CAAC;AAiBpB,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAkC;gBAGhD,UAAU,EAAE,OAAO,EACnB,IAAI,GAAE;QACJ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;KACjC;IAaR,OAAO,CAAC,IAAI;IAcZ;;OAEG;IACG,SAAS,CACb,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,eAAe,CAAC;IA2B3B;;OAEG;IACG,UAAU,CACd,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;IAUlB;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAQhD;;OAEG;IACG,MAAM,CACV,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC;IAS7B;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC;YAQ7B,YAAY;IAe1B,2CAA2C;IACrC,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAS7D,2BAA2B;IACrB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAS3D,sBAAsB;IAChB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAS1D,2BAA2B;IACrB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAS3D,6BAA6B;IACvB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAS7D,0BAA0B;IACpB,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IASxD,4BAA4B;IACtB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAS7D,uBAAuB;IACjB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;CAQ9D"}
package/dist/wsfex.js ADDED
@@ -0,0 +1,141 @@
1
+ import { ENDPOINTS, WSFEX_NAMESPACE } from "./constants.js";
2
+ import { afipSoapCall } from "./soap-client.js";
3
+ import { ArcaWSFEError } from "./errors.js";
4
+ function toArray(val) {
5
+ if (val === undefined || val === null)
6
+ return [];
7
+ return Array.isArray(val) ? val : [val];
8
+ }
9
+ function checkFexErr(result) {
10
+ if (result.FEXErr && result.FEXErr.ErrCode !== 0) {
11
+ throw new ArcaWSFEError([
12
+ { code: result.FEXErr.ErrCode, msg: result.FEXErr.ErrMsg },
13
+ ]);
14
+ }
15
+ }
16
+ export class WsfexClient {
17
+ endpoint;
18
+ soapOpts;
19
+ constructor(production, opts = {}) {
20
+ this.endpoint = production
21
+ ? ENDPOINTS.wsfex.production
22
+ : ENDPOINTS.wsfex.testing;
23
+ this.soapOpts = {
24
+ timeoutMs: opts.timeoutMs,
25
+ retries: opts.retries,
26
+ retryDelayMs: opts.retryDelayMs,
27
+ onEvent: opts.onEvent,
28
+ };
29
+ }
30
+ call(method, params) {
31
+ return afipSoapCall(this.endpoint, WSFEX_NAMESPACE, method, params, this.soapOpts);
32
+ }
33
+ // ============================================================
34
+ // Facturación de exportación
35
+ // ============================================================
36
+ /**
37
+ * Autoriza un comprobante de exportación.
38
+ */
39
+ async authorize(auth, invoice) {
40
+ const cmp = { ...invoice };
41
+ // Wrappear Items
42
+ if (invoice.Items && invoice.Items.length > 0) {
43
+ cmp.Items = { Item: invoice.Items };
44
+ }
45
+ // Wrappear Permisos
46
+ if (invoice.Permisos && invoice.Permisos.length > 0) {
47
+ cmp.Permisos = { Permiso: invoice.Permisos };
48
+ }
49
+ // Wrappear Cmps_asoc
50
+ if (invoice.Cmps_asoc && invoice.Cmps_asoc.length > 0) {
51
+ cmp.Cmps_asoc = { Cmp_asoc: invoice.Cmps_asoc };
52
+ }
53
+ const result = (await this.call("FEXAuthorize", {
54
+ Auth: auth,
55
+ Cmp: cmp,
56
+ }));
57
+ checkFexErr(result);
58
+ return result;
59
+ }
60
+ /**
61
+ * Obtiene el último comprobante autorizado.
62
+ */
63
+ async getLastCmp(auth, ptoVta, cbteTipo) {
64
+ const result = (await this.call("FEXGetLast_CMP", {
65
+ Auth: auth,
66
+ Cbte_Tipo: cbteTipo,
67
+ Punto_vta: ptoVta,
68
+ }));
69
+ checkFexErr(result);
70
+ return Number(result.FEXResult_LastCMP?.Cbte_nro ?? 0);
71
+ }
72
+ /**
73
+ * Obtiene el último ID de request.
74
+ */
75
+ async getLastId(auth) {
76
+ const result = (await this.call("FEXGetLast_ID", {
77
+ Auth: auth,
78
+ }));
79
+ checkFexErr(result);
80
+ return Number(result.FEXResultGet?.Id ?? 0);
81
+ }
82
+ /**
83
+ * Consulta un comprobante de exportación.
84
+ */
85
+ async getCmp(auth, cbteTipo, ptoVta, cbteNro) {
86
+ const result = (await this.call("FEXGetCMP", {
87
+ Auth: auth,
88
+ Cmp: { Cbte_tipo: cbteTipo, Punto_vta: ptoVta, Cbte_nro: cbteNro },
89
+ }));
90
+ checkFexErr(result);
91
+ return result;
92
+ }
93
+ /**
94
+ * Verifica el estado de los servidores de WSFEX.
95
+ */
96
+ async serverStatus() {
97
+ return (await this.call("FEXDummy", {}));
98
+ }
99
+ // ============================================================
100
+ // Parámetros
101
+ // ============================================================
102
+ async getParamList(auth, method, resultKey, itemKey) {
103
+ const result = (await this.call(method, { Auth: auth }));
104
+ checkFexErr(result);
105
+ const items = result[resultKey]?.[itemKey];
106
+ return toArray(items);
107
+ }
108
+ /** Tipos de comprobante de exportación. */
109
+ async getTiposCbte(auth) {
110
+ return this.getParamList(auth, "FEXGetPARAM_Cbte_Tipo", "FEXResultGet", "ClsFEXResponse_Cbte_Tipo");
111
+ }
112
+ /** Monedas disponibles. */
113
+ async getMonedas(auth) {
114
+ return this.getParamList(auth, "FEXGetPARAM_MON", "FEXResultGet", "ClsFEXResponse_Mon");
115
+ }
116
+ /** Países destino. */
117
+ async getPaises(auth) {
118
+ return this.getParamList(auth, "FEXGetPARAM_DST_Pais", "FEXResultGet", "ClsFEXResponse_DST_pais");
119
+ }
120
+ /** Idiomas disponibles. */
121
+ async getIdiomas(auth) {
122
+ return this.getParamList(auth, "FEXGetPARAM_Idiomas", "FEXResultGet", "ClsFEXResponse_Idi");
123
+ }
124
+ /** Incoterms disponibles. */
125
+ async getIncoterms(auth) {
126
+ return this.getParamList(auth, "FEXGetPARAM_Incoterms", "FEXResultGet", "ClsFEXResponse_Inc");
127
+ }
128
+ /** Unidades de medida. */
129
+ async getUMed(auth) {
130
+ return this.getParamList(auth, "FEXGetPARAM_UMed", "FEXResultGet", "ClsFEXResponse_UMed");
131
+ }
132
+ /** Tipos de exportación. */
133
+ async getTiposExpo(auth) {
134
+ return this.getParamList(auth, "FEXGetPARAM_Tipo_Expo", "FEXResultGet", "ClsFEXResponse_Tex");
135
+ }
136
+ /** CUITs de países. */
137
+ async getCuitsPais(auth) {
138
+ return this.getParamList(auth, "FEXGetPARAM_DST_CUIT", "FEXResultGet", "ClsFEXResponse_DST_cuit");
139
+ }
140
+ }
141
+ //# sourceMappingURL=wsfex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wsfex.js","sourceRoot":"","sources":["../src/wsfex.ts"],"names":[],"mappings":"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"}
package/llm.txt CHANGED
@@ -1,7 +1,7 @@
1
1
  # @ramiidv/arca-sdk
2
2
 
3
3
  > TypeScript SDK for ARCA (formerly AFIP) electronic invoicing in Argentina.
4
- > Wraps WSFEv1 and WSAA SOAP web services.
4
+ > Wraps WSFEv1, WSFEX, and WSAA SOAP web services.
5
5
 
6
6
  ## What this SDK does
7
7
 
@@ -10,6 +10,10 @@
10
10
  - Handles all comprobante types: A, B, C, E, M, and MiPyME FCE
11
11
  - Auto-calculates IVA, totals, and comprobante numbers
12
12
  - Queries ARCA parameters (document types, IVA rates, currencies, exchange rates, etc.)
13
+ - Export invoices via WSFEX (Factura de Exportación)
14
+ - Retry with exponential backoff on transient errors
15
+ - Event system for logging/debugging (auth, requests, retries)
16
+ - QR code URL generation for printed invoices
13
17
 
14
18
  ## Install
15
19
 
@@ -65,6 +69,9 @@ new Arca({
65
69
  production?: boolean, // Default: false (uses homologación/testing endpoints)
66
70
  tokenTTLMinutes?: number, // Default: 720 (12 hours)
67
71
  requestTimeoutMs?: number, // Default: 30000 (30 seconds). Uses AbortController.
72
+ retries?: number, // Default: 1. Retries on transient errors (timeout, 5xx).
73
+ retryDelayMs?: number, // Default: 1000. Exponential backoff: delay * 2^attempt.
74
+ onEvent?: (event: ArcaEvent) => void, // Callback for all SDK events
68
75
  })
69
76
  ```
70
77
 
@@ -339,6 +346,164 @@ await arca.facturar({
339
346
  });
340
347
  ```
341
348
 
349
+ ## Events / Logging
350
+
351
+ Two ways to subscribe:
352
+
353
+ ```typescript
354
+ // 1. Config callback (receives all events)
355
+ const arca = new Arca({
356
+ ...,
357
+ onEvent: (e) => console.log(e.type, e),
358
+ });
359
+
360
+ // 2. Typed .on()/.off() (filter by event type)
361
+ arca.on("request:end", (e) => console.log(`${e.method} took ${e.durationMs}ms`));
362
+ arca.on("auth:login", (e) => console.log(`Login ${e.service} in ${e.durationMs}ms`));
363
+ arca.on("request:retry", (e) => console.warn(`Retry #${e.attempt}: ${e.error}`));
364
+ ```
365
+
366
+ Event types (discriminated union `ArcaEvent`):
367
+ - `auth:login` — new token obtained. Fields: `service`, `durationMs`
368
+ - `auth:cache-hit` — cached token reused. Fields: `service`
369
+ - `request:start` — SOAP call starting. Fields: `method`, `endpoint`
370
+ - `request:end` — SOAP call completed. Fields: `method`, `durationMs`
371
+ - `request:retry` — retrying after error. Fields: `method`, `attempt`, `delayMs`, `error`
372
+ - `request:error` — request failed. Fields: `method`, `error`
373
+
374
+ ## Retry
375
+
376
+ Enabled by default (`retries: 1`). Only retries on transient errors (timeout, 5xx, network). Does NOT retry on 4xx or business errors. Exponential backoff: `retryDelayMs * 2^attempt`.
377
+
378
+ ## QR Code URL
379
+
380
+ ARCA requires a QR code on printed invoices. `generateQRUrl` produces the official URL:
381
+
382
+ ```typescript
383
+ const url = Arca.generateQRUrl({
384
+ fecha: "2026-03-28", // YYYY-MM-DD
385
+ cuit: 20123456789,
386
+ ptoVta: 1,
387
+ tipoCmp: CbteTipo.FACTURA_B,
388
+ nroCmp: 150,
389
+ importe: 121,
390
+ moneda: "PES",
391
+ ctz: 1,
392
+ tipoDocRec: DocTipo.CONSUMIDOR_FINAL,
393
+ nroDocRec: 0,
394
+ codAut: 73429843294823, // CAE number
395
+ });
396
+ // → "https://www.afip.gob.ar/fe/qr/?p=<base64>"
397
+ ```
398
+
399
+ ## WSFEX (Export invoices)
400
+
401
+ Simplified API (`facturarExpo`) auto-handles ID, numbering, and item total calculation:
402
+
403
+ ```typescript
404
+ const result = await arca.facturarExpo({
405
+ ptoVta: 1,
406
+ cbteTipo: CbteTipo.FACTURA_E,
407
+ tipoExpo: 1, // 1=Bienes, 2=Servicios, 4=Otros
408
+ pais: 203, // Country code (203 = USA)
409
+ cliente: {
410
+ nombre: "ACME Corp",
411
+ cuitPais: 50000000016,
412
+ domicilio: "123 Main St, NY",
413
+ idImpositivo: "12-3456789",
414
+ },
415
+ moneda: "DOL",
416
+ cotizacion: 1200,
417
+ formaPago: "Wire Transfer",
418
+ incoterms: "FOB",
419
+ idioma: 2, // 1=ES, 2=EN, 3=PT
420
+ items: [{
421
+ codigo: "SKU001",
422
+ descripcion: "Widget",
423
+ cantidad: 100,
424
+ unidad: 7,
425
+ precioUnitario: 10,
426
+ // Pro_total_item auto-calculated: 100 * 10 = 1000
427
+ }],
428
+ });
429
+
430
+ if (result.aprobada) {
431
+ console.log("CAE:", result.cae);
432
+ console.log("Cbte:", result.cbteNro);
433
+ }
434
+ ```
435
+
436
+ Returns `FacturaExpoResult`: `aprobada`, `cae`, `caeVencimiento`, `cbteNro`, `ptoVta`, `cbteTipo`, `obs`, `raw`.
437
+
438
+ Raw API also available via `crearFacturaExportacion(invoice)` for full control.
439
+
440
+ Query methods:
441
+ ```typescript
442
+ await arca.consultarComprobanteExpo(CbteTipo.FACTURA_E, 1, cbteNro);
443
+ await arca.serverStatusExpo();
444
+ await arca.getPaisesExpo(); // Country codes
445
+ await arca.getIncotermsExpo(); // Incoterms
446
+ await arca.getUMedExpo(); // Units of measure
447
+ await arca.getTiposExpo(); // Export types
448
+ await arca.getMonedasExpo();
449
+ await arca.getIdiomasExpo();
450
+ await arca.getCuitsPaisExpo();
451
+ await arca.getTiposCbteExpo();
452
+ ```
453
+
454
+ ## CAEA (offline/contingency invoicing)
455
+
456
+ CAEA (Código de Autorización Electrónico Anticipado) allows issuing invoices offline and reporting them later.
457
+
458
+ Flow:
459
+ 1. Request CAEA for a period (before it starts)
460
+ 2. Issue invoices offline using the CAEA
461
+ 3. Report invoices to ARCA
462
+ 4. If no invoices were issued, report "sin movimiento"
463
+
464
+ ```typescript
465
+ // 1. Request CAEA (must be done 5+ days before the period starts)
466
+ const caea = await arca.solicitarCAEA("202604", 1); // April, 1st half
467
+ // caea: { CAEA, Periodo, Orden, FchVigDesde, FchVigHasta, FchTopeInf }
468
+
469
+ // 2. Register invoices with CAEA (same interface as facturar()!)
470
+ const result = await arca.registrarFacturaCAEA(caea.CAEA, {
471
+ ptoVta: 5,
472
+ cbteTipo: CbteTipo.FACTURA_B,
473
+ items: [{ neto: 100, iva: IvaTipo.IVA_21 }],
474
+ });
475
+ // Returns FacturaResult — same as facturar()
476
+
477
+ // 3. If no invoices in the period, report no movement
478
+ await arca.sinMovimientoCAEA(caea.CAEA, 5);
479
+
480
+ // Query existing CAEA
481
+ const existing = await arca.consultarCAEA("202604", 1);
482
+
483
+ // Raw API also available: registrarCAEA(request) for full control
484
+ ```
485
+
486
+ ## Padrón (taxpayer registry)
487
+
488
+ Look up taxpayer data by CUIT. Two service levels:
489
+
490
+ ```typescript
491
+ // Basic lookup (A13) — works with standard cert
492
+ const persona = await arca.consultarCuit(30712345678);
493
+ persona.cuit; // 30712345678
494
+ persona.nombre; // "EMPRESA SA"
495
+ persona.tipoPersona; // "JURIDICA"
496
+ persona.estadoClave; // "ACTIVO"
497
+ persona.impuestos; // [{ id: 30, descripcion: "IVA", estado: "AC" }]
498
+ persona.raw; // full parsed AFIP response
499
+
500
+ // Detailed lookup (A5) — requires additional cert authorization
501
+ const detalle = await arca.consultarCuitDetalle(20123456789);
502
+ detalle.domicilioFiscal; // { direccion, localidad, codPostal }
503
+ ```
504
+
505
+ Returns `Contribuyente`: `cuit`, `nombre`, `tipoPersona`, `estadoClave`, `domicilioFiscal?`, `impuestos?`, `raw`.
506
+
342
507
  ## Key domain concepts
343
508
 
344
509
  - **CUIT**: Argentine tax ID (11 digits, no hyphens). Used for business identification.
@@ -350,3 +515,6 @@ await arca.facturar({
350
515
  - **Homologación**: ARCA's testing/sandbox environment. Use `production: false`.
351
516
  - **FCE MiPyME**: Factura de Crédito Electrónica for small/medium businesses. Requires CBU in opcionales.
352
517
  - **Tipo C**: Invoices issued by monotributistas (simplified tax regime). No IVA discrimination.
518
+ - **WSFEX**: ARCA's web service for export invoices. Separate from WSFEv1, different schema.
519
+ - **CAEA**: Código de Autorización Electrónico Anticipado. Pre-authorized code for offline invoicing. Must be requested before the period starts.
520
+ - **Padrón A13/A5**: ARCA's taxpayer registry web services. A13 = basic info (name, status, taxes). A5 = detailed (includes address, activities). Requires separate WSAA authorization.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ramiidv/arca-sdk",
3
- "version": "0.3.0",
3
+ "version": "1.1.3",
4
4
  "description": "SDK para interactuar con los Web Services de ARCA (ex AFIP) - Facturación Electrónica Argentina",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",