@ramiidv/arca-padron 0.1.0 → 0.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.
Files changed (152) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/README.md +106 -21
  3. package/dist/cjs/arca-padron.d.ts +98 -0
  4. package/dist/cjs/arca-padron.d.ts.map +1 -0
  5. package/dist/cjs/arca-padron.js +177 -0
  6. package/dist/cjs/arca-padron.js.map +1 -0
  7. package/dist/{base-client.d.ts → cjs/base-client.d.ts} +12 -2
  8. package/dist/cjs/base-client.d.ts.map +1 -0
  9. package/dist/cjs/base-client.js +52 -0
  10. package/dist/cjs/base-client.js.map +1 -0
  11. package/dist/cjs/condicion-iva.d.ts +24 -0
  12. package/dist/cjs/condicion-iva.d.ts.map +1 -0
  13. package/dist/cjs/condicion-iva.js +119 -0
  14. package/dist/cjs/condicion-iva.js.map +1 -0
  15. package/dist/{constants.d.ts → cjs/constants.d.ts} +21 -3
  16. package/dist/{constants.d.ts.map → cjs/constants.d.ts.map} +1 -1
  17. package/dist/cjs/constants.js +113 -0
  18. package/dist/cjs/constants.js.map +1 -0
  19. package/dist/{errors.d.ts → cjs/errors.d.ts} +3 -1
  20. package/dist/cjs/errors.d.ts.map +1 -0
  21. package/dist/cjs/errors.js +36 -0
  22. package/dist/cjs/errors.js.map +1 -0
  23. package/dist/cjs/index.d.ts +16 -0
  24. package/dist/cjs/index.d.ts.map +1 -0
  25. package/dist/cjs/index.js +56 -0
  26. package/dist/cjs/index.js.map +1 -0
  27. package/dist/cjs/mapping.d.ts +9 -0
  28. package/dist/cjs/mapping.d.ts.map +1 -0
  29. package/dist/cjs/mapping.js +14 -0
  30. package/dist/cjs/mapping.js.map +1 -0
  31. package/dist/cjs/package.json +1 -0
  32. package/dist/{padron-a10.d.ts → cjs/padron-a10.d.ts} +3 -1
  33. package/dist/cjs/padron-a10.d.ts.map +1 -0
  34. package/dist/cjs/padron-a10.js +73 -0
  35. package/dist/cjs/padron-a10.js.map +1 -0
  36. package/dist/{padron-a100.d.ts → cjs/padron-a100.d.ts} +2 -1
  37. package/dist/cjs/padron-a100.d.ts.map +1 -0
  38. package/dist/cjs/padron-a100.js +38 -0
  39. package/dist/cjs/padron-a100.js.map +1 -0
  40. package/dist/cjs/padron-a13.d.ts +24 -0
  41. package/dist/cjs/padron-a13.d.ts.map +1 -0
  42. package/dist/cjs/padron-a13.js +80 -0
  43. package/dist/cjs/padron-a13.js.map +1 -0
  44. package/dist/{padron-a4.d.ts → cjs/padron-a4.d.ts} +3 -1
  45. package/dist/cjs/padron-a4.d.ts.map +1 -0
  46. package/dist/cjs/padron-a4.js +173 -0
  47. package/dist/cjs/padron-a4.js.map +1 -0
  48. package/dist/cjs/padron-a5.d.ts +24 -0
  49. package/dist/cjs/padron-a5.d.ts.map +1 -0
  50. package/dist/cjs/padron-a5.js +156 -0
  51. package/dist/cjs/padron-a5.js.map +1 -0
  52. package/dist/cjs/soap-client.d.ts.map +1 -0
  53. package/dist/cjs/soap-client.js +13 -0
  54. package/dist/cjs/soap-client.js.map +1 -0
  55. package/dist/cjs/types.d.ts +346 -0
  56. package/dist/cjs/types.d.ts.map +1 -0
  57. package/dist/cjs/types.js +3 -0
  58. package/dist/cjs/types.js.map +1 -0
  59. package/dist/cjs/wsaa.d.ts.map +1 -0
  60. package/dist/cjs/wsaa.js +6 -0
  61. package/dist/cjs/wsaa.js.map +1 -0
  62. package/dist/esm/arca-padron.d.ts +98 -0
  63. package/dist/esm/arca-padron.d.ts.map +1 -0
  64. package/dist/esm/arca-padron.js +173 -0
  65. package/dist/esm/arca-padron.js.map +1 -0
  66. package/dist/esm/base-client.d.ts +36 -0
  67. package/dist/esm/base-client.d.ts.map +1 -0
  68. package/dist/esm/base-client.js +48 -0
  69. package/dist/esm/base-client.js.map +1 -0
  70. package/dist/esm/condicion-iva.d.ts +24 -0
  71. package/dist/esm/condicion-iva.d.ts.map +1 -0
  72. package/dist/esm/condicion-iva.js +116 -0
  73. package/dist/esm/condicion-iva.js.map +1 -0
  74. package/dist/esm/constants.d.ts +97 -0
  75. package/dist/esm/constants.d.ts.map +1 -0
  76. package/dist/{constants.js → esm/constants.js} +21 -3
  77. package/dist/esm/constants.js.map +1 -0
  78. package/dist/esm/errors.d.ts +22 -0
  79. package/dist/esm/errors.d.ts.map +1 -0
  80. package/dist/{errors.js → esm/errors.js} +3 -1
  81. package/dist/esm/errors.js.map +1 -0
  82. package/dist/esm/index.d.ts +16 -0
  83. package/dist/esm/index.d.ts.map +1 -0
  84. package/dist/esm/index.js +22 -0
  85. package/dist/esm/index.js.map +1 -0
  86. package/dist/esm/mapping.d.ts +9 -0
  87. package/dist/esm/mapping.d.ts.map +1 -0
  88. package/dist/esm/mapping.js +8 -0
  89. package/dist/esm/mapping.js.map +1 -0
  90. package/dist/esm/padron-a10.d.ts +18 -0
  91. package/dist/esm/padron-a10.d.ts.map +1 -0
  92. package/dist/{padron-a10.js → esm/padron-a10.js} +4 -9
  93. package/dist/esm/padron-a10.js.map +1 -0
  94. package/dist/esm/padron-a100.d.ts +16 -0
  95. package/dist/esm/padron-a100.d.ts.map +1 -0
  96. package/dist/{padron-a100.js → esm/padron-a100.js} +3 -9
  97. package/dist/esm/padron-a100.js.map +1 -0
  98. package/dist/esm/padron-a13.d.ts +24 -0
  99. package/dist/esm/padron-a13.d.ts.map +1 -0
  100. package/dist/esm/padron-a13.js +75 -0
  101. package/dist/esm/padron-a13.js.map +1 -0
  102. package/dist/esm/padron-a4.d.ts +18 -0
  103. package/dist/esm/padron-a4.d.ts.map +1 -0
  104. package/dist/{padron-a4.js → esm/padron-a4.js} +4 -9
  105. package/dist/esm/padron-a4.js.map +1 -0
  106. package/dist/esm/padron-a5.d.ts +24 -0
  107. package/dist/esm/padron-a5.d.ts.map +1 -0
  108. package/dist/esm/padron-a5.js +151 -0
  109. package/dist/esm/padron-a5.js.map +1 -0
  110. package/dist/esm/soap-client.d.ts +2 -0
  111. package/dist/esm/soap-client.d.ts.map +1 -0
  112. package/dist/esm/soap-client.js.map +1 -0
  113. package/dist/esm/types.d.ts +346 -0
  114. package/dist/esm/types.d.ts.map +1 -0
  115. package/dist/esm/types.js.map +1 -0
  116. package/dist/esm/wsaa.d.ts +3 -0
  117. package/dist/esm/wsaa.d.ts.map +1 -0
  118. package/dist/esm/wsaa.js.map +1 -0
  119. package/llms.txt +37 -15
  120. package/package.json +26 -18
  121. package/dist/arca-padron.d.ts +0 -70
  122. package/dist/arca-padron.d.ts.map +0 -1
  123. package/dist/arca-padron.js +0 -129
  124. package/dist/arca-padron.js.map +0 -1
  125. package/dist/base-client.d.ts.map +0 -1
  126. package/dist/base-client.js +0 -27
  127. package/dist/base-client.js.map +0 -1
  128. package/dist/constants.js.map +0 -1
  129. package/dist/errors.d.ts.map +0 -1
  130. package/dist/errors.js.map +0 -1
  131. package/dist/index.d.ts +0 -12
  132. package/dist/index.d.ts.map +0 -1
  133. package/dist/index.js +0 -16
  134. package/dist/index.js.map +0 -1
  135. package/dist/padron-a10.d.ts.map +0 -1
  136. package/dist/padron-a10.js.map +0 -1
  137. package/dist/padron-a100.d.ts.map +0 -1
  138. package/dist/padron-a100.js.map +0 -1
  139. package/dist/padron-a4.d.ts.map +0 -1
  140. package/dist/padron-a4.js.map +0 -1
  141. package/dist/soap-client.d.ts.map +0 -1
  142. package/dist/soap-client.js.map +0 -1
  143. package/dist/types.d.ts +0 -172
  144. package/dist/types.d.ts.map +0 -1
  145. package/dist/types.js.map +0 -1
  146. package/dist/wsaa.d.ts.map +0 -1
  147. package/dist/wsaa.js.map +0 -1
  148. /package/dist/{soap-client.d.ts → cjs/soap-client.d.ts} +0 -0
  149. /package/dist/{wsaa.d.ts → cjs/wsaa.d.ts} +0 -0
  150. /package/dist/{soap-client.js → esm/soap-client.js} +0 -0
  151. /package/dist/{types.js → esm/types.js} +0 -0
  152. /package/dist/{wsaa.js → esm/wsaa.js} +0 -0
@@ -0,0 +1,98 @@
1
+ import { WsaaClient } from '@ramiidv/arca-common';
2
+ import type { CallOptions } from '@ramiidv/arca-common';
3
+ import { PadronA4Client } from './padron-a4.js';
4
+ import { PadronA5Client } from './padron-a5.js';
5
+ import { PadronA10Client } from './padron-a10.js';
6
+ import { PadronA13Client } from './padron-a13.js';
7
+ import { PadronA100Client } from './padron-a100.js';
8
+ import type { ArcaPadronConfig, ParameterRecord, PersonaA4, PersonaA5, PersonaA10, PersonaA13, ServerStatus } from './types.js';
9
+ /**
10
+ * Main orchestrator class for ARCA Padrón web services.
11
+ *
12
+ * Provides high-level methods that handle WSAA authentication automatically
13
+ * and expose results from the Constancia de Inscripción (ex A5), A4 (full),
14
+ * A10 (basic), A13 (basic) and A100 (parameters) web services.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * import { ArcaPadron, condicionIvaDesdePadron, FileTicketStorage } from '@ramiidv/arca-padron';
19
+ * import { readFileSync } from 'fs';
20
+ *
21
+ * const client = new ArcaPadron({
22
+ * cert: readFileSync('cert.pem', 'utf-8'),
23
+ * key: readFileSync('key.pem', 'utf-8'),
24
+ * cuit: '20123456789',
25
+ * production: false,
26
+ * ticketStorage: new FileTicketStorage('./.arca-tickets'),
27
+ * });
28
+ *
29
+ * const persona = await client.getConstanciaInscripcion('30712345674');
30
+ * const { condicionIva, motivo } = condicionIvaDesdePadron(persona);
31
+ * ```
32
+ */
33
+ export declare class ArcaPadron {
34
+ /** Low-level WSAA client for direct access (se puede compartir con arca-facturacion) */
35
+ readonly wsaa: WsaaClient;
36
+ /** Low-level Constancia de Inscripción (ex Padrón A5) client */
37
+ readonly a5: PadronA5Client;
38
+ /** Low-level Padrón A4 client for direct access */
39
+ readonly a4: PadronA4Client;
40
+ /** Low-level Padrón A10 client for direct access */
41
+ readonly a10: PadronA10Client;
42
+ /** Low-level Padrón A13 client for direct access */
43
+ readonly a13: PadronA13Client;
44
+ /** Low-level Padrón A100 client for direct access */
45
+ readonly a100: PadronA100Client;
46
+ private readonly cuit;
47
+ private readonly signal?;
48
+ constructor(config: ArcaPadronConfig);
49
+ /**
50
+ * Constancia de inscripción (ws_sr_constancia_inscripcion, ex Padrón A5):
51
+ * datos generales, domicilio fiscal, impuestos del régimen general y
52
+ * monotributo. Combinar con `condicionIvaDesdePadron` para facturar.
53
+ * @param cuit - CUIT of the taxpayer to query
54
+ */
55
+ getConstanciaInscripcion(cuit: string, call?: CallOptions): Promise<PersonaA5>;
56
+ /**
57
+ * Get full taxpayer data (Padrón A4) for a given CUIT.
58
+ * Authenticates automatically via WSAA.
59
+ * @param cuit - CUIT of the taxpayer to query
60
+ */
61
+ getPersona(cuit: string, call?: CallOptions): Promise<PersonaA4>;
62
+ /**
63
+ * Get basic taxpayer data (Padrón A10) for a given CUIT.
64
+ * Authenticates automatically via WSAA.
65
+ * @param cuit - CUIT of the taxpayer to query
66
+ */
67
+ getPersonaBasic(cuit: string, call?: CallOptions): Promise<PersonaA10>;
68
+ /**
69
+ * Get basic taxpayer data (Padrón A13) for a given CUIT.
70
+ * @param cuit - CUIT of the taxpayer to query
71
+ */
72
+ getPersonaA13(cuit: string, call?: CallOptions): Promise<PersonaA13>;
73
+ /**
74
+ * CUITs/CUILs asociados a un número de documento (Padrón A13).
75
+ * @param documento - Número de documento (DNI)
76
+ */
77
+ getIdPersonaListByDocumento(documento: string, call?: CallOptions): Promise<string[]>;
78
+ /**
79
+ * Get a parameter table (Padrón A100) by collection name.
80
+ * Authenticates automatically via WSAA.
81
+ * @param collection - Name of the collection (e.g. CollectionName.PROVINCIA, CollectionName.TIPO_DOCUMENTO)
82
+ */
83
+ getParametros(collection: string, call?: CallOptions): Promise<ParameterRecord[]>;
84
+ /**
85
+ * Health check for the Padrón services.
86
+ * Does not require authentication.
87
+ */
88
+ status(call?: CallOptions): Promise<{
89
+ a5: ServerStatus;
90
+ a4: ServerStatus;
91
+ a10: ServerStatus;
92
+ a13: ServerStatus;
93
+ a100: ServerStatus;
94
+ }>;
95
+ private opts;
96
+ private getAuth;
97
+ }
98
+ //# sourceMappingURL=arca-padron.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arca-padron.d.ts","sourceRoot":"","sources":["../../src/arca-padron.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAa,WAAW,EAAmB,MAAM,sBAAsB,CAAC;AAEpF,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,SAAS,EACT,UAAU,EACV,UAAU,EACV,YAAY,EAEb,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,UAAU;IACrB,wFAAwF;IACxF,SAAgB,IAAI,EAAE,UAAU,CAAC;IACjC,gEAAgE;IAChE,SAAgB,EAAE,EAAE,cAAc,CAAC;IACnC,mDAAmD;IACnD,SAAgB,EAAE,EAAE,cAAc,CAAC;IACnC,oDAAoD;IACpD,SAAgB,GAAG,EAAE,eAAe,CAAC;IACrC,oDAAoD;IACpD,SAAgB,GAAG,EAAE,eAAe,CAAC;IACrC,qDAAqD;IACrD,SAAgB,IAAI,EAAE,gBAAgB,CAAC;IAEvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAc;gBAE1B,MAAM,EAAE,gBAAgB;IA0CpC;;;;;OAKG;IACG,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;IAMpF;;;;OAIG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;IAMtE;;;;OAIG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAM5E;;;OAGG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAM1E;;;OAGG;IACG,2BAA2B,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAM3F;;;;OAIG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAMvF;;;OAGG;IACG,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QACxC,EAAE,EAAE,YAAY,CAAC;QACjB,EAAE,EAAE,YAAY,CAAC;QACjB,GAAG,EAAE,YAAY,CAAC;QAClB,GAAG,EAAE,YAAY,CAAC;QAClB,IAAI,EAAE,YAAY,CAAC;KACpB,CAAC;IAgBF,OAAO,CAAC,IAAI;YAIE,OAAO;CAQtB"}
@@ -0,0 +1,173 @@
1
+ import { WsaaClient, anySignal } from '@ramiidv/arca-common';
2
+ import { ENDPOINTS } from './constants.js';
3
+ import { PadronA4Client } from './padron-a4.js';
4
+ import { PadronA5Client } from './padron-a5.js';
5
+ import { PadronA10Client } from './padron-a10.js';
6
+ import { PadronA13Client } from './padron-a13.js';
7
+ import { PadronA100Client } from './padron-a100.js';
8
+ /**
9
+ * Main orchestrator class for ARCA Padrón web services.
10
+ *
11
+ * Provides high-level methods that handle WSAA authentication automatically
12
+ * and expose results from the Constancia de Inscripción (ex A5), A4 (full),
13
+ * A10 (basic), A13 (basic) and A100 (parameters) web services.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * import { ArcaPadron, condicionIvaDesdePadron, FileTicketStorage } from '@ramiidv/arca-padron';
18
+ * import { readFileSync } from 'fs';
19
+ *
20
+ * const client = new ArcaPadron({
21
+ * cert: readFileSync('cert.pem', 'utf-8'),
22
+ * key: readFileSync('key.pem', 'utf-8'),
23
+ * cuit: '20123456789',
24
+ * production: false,
25
+ * ticketStorage: new FileTicketStorage('./.arca-tickets'),
26
+ * });
27
+ *
28
+ * const persona = await client.getConstanciaInscripcion('30712345674');
29
+ * const { condicionIva, motivo } = condicionIvaDesdePadron(persona);
30
+ * ```
31
+ */
32
+ export class ArcaPadron {
33
+ /** Low-level WSAA client for direct access (se puede compartir con arca-facturacion) */
34
+ wsaa;
35
+ /** Low-level Constancia de Inscripción (ex Padrón A5) client */
36
+ a5;
37
+ /** Low-level Padrón A4 client for direct access */
38
+ a4;
39
+ /** Low-level Padrón A10 client for direct access */
40
+ a10;
41
+ /** Low-level Padrón A13 client for direct access */
42
+ a13;
43
+ /** Low-level Padrón A100 client for direct access */
44
+ a100;
45
+ cuit;
46
+ signal;
47
+ constructor(config) {
48
+ const isProduction = config.production ?? false;
49
+ const env = isProduction ? 'production' : 'testing';
50
+ this.cuit = config.cuit;
51
+ this.signal = config.signal;
52
+ const onEvent = config.onEvent;
53
+ const soapOptions = {
54
+ timeout: config.timeout,
55
+ retries: config.retries,
56
+ retryDelayMs: config.retryDelayMs,
57
+ };
58
+ this.wsaa =
59
+ config.wsaa ??
60
+ new WsaaClient({
61
+ cert: config.cert,
62
+ key: config.key,
63
+ production: isProduction,
64
+ timeout: config.timeout,
65
+ retries: config.retries,
66
+ retryDelayMs: config.retryDelayMs,
67
+ onEvent,
68
+ ticketStorage: config.ticketStorage,
69
+ clockOffsetMs: config.clockOffsetMs,
70
+ autoClockSkew: config.autoClockSkew,
71
+ });
72
+ const clientConfig = (svc) => ({
73
+ endpoint: svc[env],
74
+ namespace: svc.namespace,
75
+ soapOptions,
76
+ onEvent,
77
+ });
78
+ this.a5 = new PadronA5Client(clientConfig(ENDPOINTS.a5));
79
+ this.a4 = new PadronA4Client(clientConfig(ENDPOINTS.a4));
80
+ this.a10 = new PadronA10Client(clientConfig(ENDPOINTS.a10));
81
+ this.a13 = new PadronA13Client(clientConfig(ENDPOINTS.a13));
82
+ this.a100 = new PadronA100Client(clientConfig(ENDPOINTS.a100));
83
+ }
84
+ /**
85
+ * Constancia de inscripción (ws_sr_constancia_inscripcion, ex Padrón A5):
86
+ * datos generales, domicilio fiscal, impuestos del régimen general y
87
+ * monotributo. Combinar con `condicionIvaDesdePadron` para facturar.
88
+ * @param cuit - CUIT of the taxpayer to query
89
+ */
90
+ async getConstanciaInscripcion(cuit, call) {
91
+ const opts = this.opts(call);
92
+ const auth = await this.getAuth(ENDPOINTS.a5.serviceId, opts);
93
+ return this.a5.getPersona(auth, cuit, opts);
94
+ }
95
+ /**
96
+ * Get full taxpayer data (Padrón A4) for a given CUIT.
97
+ * Authenticates automatically via WSAA.
98
+ * @param cuit - CUIT of the taxpayer to query
99
+ */
100
+ async getPersona(cuit, call) {
101
+ const opts = this.opts(call);
102
+ const auth = await this.getAuth(ENDPOINTS.a4.serviceId, opts);
103
+ return this.a4.getPersona(auth, cuit, opts);
104
+ }
105
+ /**
106
+ * Get basic taxpayer data (Padrón A10) for a given CUIT.
107
+ * Authenticates automatically via WSAA.
108
+ * @param cuit - CUIT of the taxpayer to query
109
+ */
110
+ async getPersonaBasic(cuit, call) {
111
+ const opts = this.opts(call);
112
+ const auth = await this.getAuth(ENDPOINTS.a10.serviceId, opts);
113
+ return this.a10.getPersona(auth, cuit, opts);
114
+ }
115
+ /**
116
+ * Get basic taxpayer data (Padrón A13) for a given CUIT.
117
+ * @param cuit - CUIT of the taxpayer to query
118
+ */
119
+ async getPersonaA13(cuit, call) {
120
+ const opts = this.opts(call);
121
+ const auth = await this.getAuth(ENDPOINTS.a13.serviceId, opts);
122
+ return this.a13.getPersona(auth, cuit, opts);
123
+ }
124
+ /**
125
+ * CUITs/CUILs asociados a un número de documento (Padrón A13).
126
+ * @param documento - Número de documento (DNI)
127
+ */
128
+ async getIdPersonaListByDocumento(documento, call) {
129
+ const opts = this.opts(call);
130
+ const auth = await this.getAuth(ENDPOINTS.a13.serviceId, opts);
131
+ return this.a13.getIdPersonaListByDocumento(auth, documento, opts);
132
+ }
133
+ /**
134
+ * Get a parameter table (Padrón A100) by collection name.
135
+ * Authenticates automatically via WSAA.
136
+ * @param collection - Name of the collection (e.g. CollectionName.PROVINCIA, CollectionName.TIPO_DOCUMENTO)
137
+ */
138
+ async getParametros(collection, call) {
139
+ const opts = this.opts(call);
140
+ const auth = await this.getAuth(ENDPOINTS.a100.serviceId, opts);
141
+ return this.a100.getParameterCollectionByName(auth, collection, opts);
142
+ }
143
+ /**
144
+ * Health check for the Padrón services.
145
+ * Does not require authentication.
146
+ */
147
+ async status(call) {
148
+ const opts = this.opts(call);
149
+ const [a5, a4, a10, a13, a100] = await Promise.all([
150
+ this.a5.dummy(opts),
151
+ this.a4.dummy(opts),
152
+ this.a10.dummy(opts),
153
+ this.a13.dummy(opts),
154
+ this.a100.dummy(opts),
155
+ ]);
156
+ return { a5, a4, a10, a13, a100 };
157
+ }
158
+ // -------------------------------------------------------------------------
159
+ // Private helpers
160
+ // -------------------------------------------------------------------------
161
+ opts(call) {
162
+ return { signal: anySignal(this.signal, call?.signal) };
163
+ }
164
+ async getAuth(serviceId, opts) {
165
+ const ticket = await this.wsaa.getAccessTicket(serviceId, opts);
166
+ return {
167
+ Token: ticket.token,
168
+ Sign: ticket.sign,
169
+ CuitRepresentada: this.cuit,
170
+ };
171
+ }
172
+ }
173
+ //# sourceMappingURL=arca-padron.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arca-padron.js","sourceRoot":"","sources":["../../src/arca-padron.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import type { ArcaEvent, CallOptions, SoapCallOptions, ServerStatus } from '@ramiidv/arca-common';
2
+ import type { WsAuth } from './types.js';
3
+ /** Shared configuration for all Padrón service clients. */
4
+ export interface PadronClientConfig {
5
+ /** SOAP endpoint URL */
6
+ endpoint: string;
7
+ /** SOAP namespace */
8
+ namespace: string;
9
+ /** SOAP call options (retries, timeout) */
10
+ soapOptions?: Pick<SoapCallOptions, 'timeout' | 'retries' | 'retryDelayMs'>;
11
+ /** Optional event callback */
12
+ onEvent?: (event: ArcaEvent) => void;
13
+ }
14
+ /**
15
+ * Abstract base class for Padrón web service clients.
16
+ * Provides shared constructor logic and health-check method.
17
+ *
18
+ * Los WS de Padrón declaran los parámetros sin namespace
19
+ * (`elementFormDefault="unqualified"`): `afipSoapCall` de arca-common prefija
20
+ * el método y deja los parámetros sin namespace. Todas las consultas se
21
+ * reintentan ante errores transitorios.
22
+ */
23
+ export declare abstract class BasePadronClient {
24
+ protected readonly endpoint: string;
25
+ protected readonly namespace: string;
26
+ protected readonly soapOptions?: Pick<SoapCallOptions, 'timeout' | 'retries' | 'retryDelayMs'>;
27
+ protected readonly onEvent?: (event: ArcaEvent) => void;
28
+ constructor(config: PadronClientConfig);
29
+ /** Llama a un método del servicio. */
30
+ protected call(method: string, params: Record<string, unknown>, opts?: CallOptions): Promise<Record<string, unknown>>;
31
+ /** Parámetros de autenticación en el orden del WSDL: token, sign, cuitRepresentada. */
32
+ protected authParams(auth: WsAuth): Record<string, unknown>;
33
+ /** Health check for this service. */
34
+ dummy(opts?: CallOptions): Promise<ServerStatus>;
35
+ }
36
+ //# sourceMappingURL=base-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-client.d.ts","sourceRoot":"","sources":["../../src/base-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,2DAA2D;AAC3D,MAAM,WAAW,kBAAkB;IACjC,wBAAwB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,SAAS,GAAG,cAAc,CAAC,CAAC;IAC5E,8BAA8B;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CACtC;AAED;;;;;;;;GAQG;AACH,8BAAsB,gBAAgB;IACpC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IACpC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IACrC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,SAAS,GAAG,cAAc,CAAC,CAAC;IAC/F,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;gBAE5C,MAAM,EAAE,kBAAkB;IAOtC,sCAAsC;IACtC,SAAS,CAAC,IAAI,CACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAQnC,uFAAuF;IACvF,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQ3D,qCAAqC;IAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;CASvD"}
@@ -0,0 +1,48 @@
1
+ import { afipSoapCall } from './soap-client.js';
2
+ /**
3
+ * Abstract base class for Padrón web service clients.
4
+ * Provides shared constructor logic and health-check method.
5
+ *
6
+ * Los WS de Padrón declaran los parámetros sin namespace
7
+ * (`elementFormDefault="unqualified"`): `afipSoapCall` de arca-common prefija
8
+ * el método y deja los parámetros sin namespace. Todas las consultas se
9
+ * reintentan ante errores transitorios.
10
+ */
11
+ export class BasePadronClient {
12
+ endpoint;
13
+ namespace;
14
+ soapOptions;
15
+ onEvent;
16
+ constructor(config) {
17
+ this.endpoint = config.endpoint;
18
+ this.namespace = config.namespace;
19
+ this.soapOptions = config.soapOptions;
20
+ this.onEvent = config.onEvent;
21
+ }
22
+ /** Llama a un método del servicio. */
23
+ call(method, params, opts) {
24
+ return afipSoapCall(this.endpoint, this.namespace, method, params, {
25
+ ...this.soapOptions,
26
+ onEvent: this.onEvent,
27
+ signal: opts?.signal,
28
+ });
29
+ }
30
+ /** Parámetros de autenticación en el orden del WSDL: token, sign, cuitRepresentada. */
31
+ authParams(auth) {
32
+ return {
33
+ token: auth.Token,
34
+ sign: auth.Sign,
35
+ cuitRepresentada: auth.CuitRepresentada,
36
+ };
37
+ }
38
+ /** Health check for this service. */
39
+ async dummy(opts) {
40
+ const result = await this.call('dummy', {}, opts);
41
+ return {
42
+ appserver: (result['appserver'] ?? ''),
43
+ dbserver: (result['dbserver'] ?? ''),
44
+ authserver: (result['authserver'] ?? ''),
45
+ };
46
+ }
47
+ }
48
+ //# sourceMappingURL=base-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-client.js","sourceRoot":"","sources":["../../src/base-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAgBhD;;;;;;;;GAQG;AACH,MAAM,OAAgB,gBAAgB;IACjB,QAAQ,CAAS;IACjB,SAAS,CAAS;IAClB,WAAW,CAAiE;IAC5E,OAAO,CAA8B;IAExD,YAAY,MAA0B;QACpC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAChC,CAAC;IAED,sCAAsC;IAC5B,IAAI,CACZ,MAAc,EACd,MAA+B,EAC/B,IAAkB;QAElB,OAAO,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE;YACjE,GAAG,IAAI,CAAC,WAAW;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IAED,uFAAuF;IAC7E,UAAU,CAAC,IAAY;QAC/B,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;SACxC,CAAC;IACJ,CAAC;IAED,qCAAqC;IACrC,KAAK,CAAC,KAAK,CAAC,IAAkB;QAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAElD,OAAO;YACL,SAAS,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAW;YAChD,QAAQ,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAW;YAC9C,UAAU,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,CAAW;SACnD,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,24 @@
1
+ import type { CondicionIvaPadron, PersonaA4, PersonaA5 } from './types.js';
2
+ /**
3
+ * Determina la condición frente al IVA de un contribuyente a partir del padrón
4
+ * (constancia de inscripción / A5, o A4), para usarla como `condicionIva` al
5
+ * facturarle.
6
+ *
7
+ * - Monotributo activo (impuesto 20 o categoría de monotributo) → MONOTRIBUTISTA,
8
+ * o MONOTRIBUTO_SOCIAL / MONOTRIBUTO_INDEPENDIENTE_PROMOVIDO según la categoría.
9
+ * - IVA activo (impuesto 30) → RESPONSABLE_INSCRIPTO.
10
+ * - IVA exento (32) → EXENTO. IVA no alcanzado (34) → IVA_NO_ALCANZADO.
11
+ * - Si no figura ninguno, devuelve `condicionIva: null`: el padrón no alcanza
12
+ * para decidir (puede ser consumidor final o sujeto no categorizado según la
13
+ * operación). No adivina.
14
+ *
15
+ * Es una función pura: no consulta ARCA.
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * const persona = await padron.getConstanciaInscripcion('30712345674');
20
+ * const { condicionIva, motivo } = condicionIvaDesdePadron(persona);
21
+ * ```
22
+ */
23
+ export declare function condicionIvaDesdePadron(persona: PersonaA5 | PersonaA4): CondicionIvaPadron;
24
+ //# sourceMappingURL=condicion-iva.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"condicion-iva.d.ts","sourceRoot":"","sources":["../../src/condicion-iva.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAyD3E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,kBAAkB,CA0D1F"}
@@ -0,0 +1,116 @@
1
+ import { CondicionIva } from '@ramiidv/arca-common';
2
+ import { ImpuestoId } from './constants.js';
3
+ /*
4
+ * Fuentes:
5
+ * - Manual del desarrollador ws_sr_constancia_inscripcion v4.1: impuesto 20 =
6
+ * MONOTRIBUTO (datosMonotributo), impuesto 30 = IVA (datosRegimenGeneral),
7
+ * estadoImpuesto "AC" = activo; las categorías 61, 99 y 100 son de
8
+ * monotributo social ("B MONOTRIBUTO SOCIAL ...").
9
+ * - IVA exento (32) e IVA no alcanzado (34) no figuran en ese manual: se
10
+ * reconocen por id o por la descripción del impuesto. También se reconoce el
11
+ * impuesto 30 con estado SUPA "EX" (exento) o "NA" (no alcanzado).
12
+ * - Valores de CondicionIva: FEParamGetCondicionIvaReceptor (WSFEv1).
13
+ */
14
+ const CATEGORIAS_MONOTRIBUTO_SOCIAL = new Set([61, 99, 100]);
15
+ function activo(estado) {
16
+ return !estado || /^(AC|ACTIVO)$/i.test(estado.trim());
17
+ }
18
+ function esA5(persona) {
19
+ return Array.isArray(persona.impuestos);
20
+ }
21
+ function impuestosDe(persona) {
22
+ if (esA5(persona)) {
23
+ return persona.impuestos.map((i) => ({
24
+ id: i.idImpuesto,
25
+ descripcion: i.descripcionImpuesto ?? '',
26
+ estado: (i.estadoImpuesto ?? '').trim().toUpperCase(),
27
+ activo: activo(i.estadoImpuesto),
28
+ }));
29
+ }
30
+ return (persona.impuesto ?? []).map((i) => ({
31
+ id: i.idImpuesto,
32
+ descripcion: i.descripcionImpuesto ?? '',
33
+ estado: (i.estado ?? '').trim().toUpperCase(),
34
+ activo: activo(i.estado),
35
+ }));
36
+ }
37
+ function categoriaMonotributo(persona) {
38
+ if (esA5(persona)) {
39
+ const c = persona.monotributo?.categoria;
40
+ return c ? { id: c.idCategoria, descripcion: c.descripcionCategoria ?? '' } : undefined;
41
+ }
42
+ const c = (persona.categoria ?? []).find((x) => x.idImpuesto === ImpuestoId.MONOTRIBUTO && activo(x.estado));
43
+ return c ? { id: c.idCategoria, descripcion: c.descripcionCategoria ?? '' } : undefined;
44
+ }
45
+ /**
46
+ * Determina la condición frente al IVA de un contribuyente a partir del padrón
47
+ * (constancia de inscripción / A5, o A4), para usarla como `condicionIva` al
48
+ * facturarle.
49
+ *
50
+ * - Monotributo activo (impuesto 20 o categoría de monotributo) → MONOTRIBUTISTA,
51
+ * o MONOTRIBUTO_SOCIAL / MONOTRIBUTO_INDEPENDIENTE_PROMOVIDO según la categoría.
52
+ * - IVA activo (impuesto 30) → RESPONSABLE_INSCRIPTO.
53
+ * - IVA exento (32) → EXENTO. IVA no alcanzado (34) → IVA_NO_ALCANZADO.
54
+ * - Si no figura ninguno, devuelve `condicionIva: null`: el padrón no alcanza
55
+ * para decidir (puede ser consumidor final o sujeto no categorizado según la
56
+ * operación). No adivina.
57
+ *
58
+ * Es una función pura: no consulta ARCA.
59
+ *
60
+ * @example
61
+ * ```ts
62
+ * const persona = await padron.getConstanciaInscripcion('30712345674');
63
+ * const { condicionIva, motivo } = condicionIvaDesdePadron(persona);
64
+ * ```
65
+ */
66
+ export function condicionIvaDesdePadron(persona) {
67
+ const impuestos = impuestosDe(persona);
68
+ const tiene = (pred) => impuestos.find((i) => i.activo && pred(i));
69
+ const advertencia = persona.estadoClave && persona.estadoClave.toUpperCase() !== 'ACTIVO'
70
+ ? ` Atención: la CUIT tiene estado ${persona.estadoClave}.`
71
+ : '';
72
+ const categoria = categoriaMonotributo(persona);
73
+ const monotributo = tiene((i) => i.id === ImpuestoId.MONOTRIBUTO) ?? (categoria ? true : undefined);
74
+ if (monotributo) {
75
+ const desc = categoria ? ` (categoría ${categoria.id} - ${categoria.descripcion.trim()})` : '';
76
+ if (categoria && (CATEGORIAS_MONOTRIBUTO_SOCIAL.has(categoria.id) || /MONOTRIBUTO SOCIAL/i.test(categoria.descripcion))) {
77
+ return { condicionIva: CondicionIva.MONOTRIBUTO_SOCIAL, motivo: `Monotributo social${desc}.${advertencia}` };
78
+ }
79
+ if (categoria && /PROMOVID/i.test(categoria.descripcion)) {
80
+ return {
81
+ condicionIva: CondicionIva.MONOTRIBUTO_INDEPENDIENTE_PROMOVIDO,
82
+ motivo: `Monotributo trabajador independiente promovido${desc}.${advertencia}`,
83
+ };
84
+ }
85
+ return { condicionIva: CondicionIva.MONOTRIBUTISTA, motivo: `Inscripto en monotributo (impuesto 20)${desc}.${advertencia}` };
86
+ }
87
+ if (tiene((i) => i.id === ImpuestoId.IVA_RESPONSABLE_INSCRIPTO)) {
88
+ return { condicionIva: CondicionIva.RESPONSABLE_INSCRIPTO, motivo: `Inscripto en IVA (impuesto 30).${advertencia}` };
89
+ }
90
+ const iva = impuestos.find((i) => i.id === ImpuestoId.IVA_RESPONSABLE_INSCRIPTO);
91
+ if (iva?.estado === 'EX') {
92
+ return { condicionIva: CondicionIva.EXENTO, motivo: `IVA (impuesto 30) en estado exento.${advertencia}` };
93
+ }
94
+ if (iva?.estado === 'NA') {
95
+ return { condicionIva: CondicionIva.IVA_NO_ALCANZADO, motivo: `IVA (impuesto 30) en estado no alcanzado.${advertencia}` };
96
+ }
97
+ if (tiene((i) => i.id === ImpuestoId.IVA_EXENTO || /IVA\s+EXENTO/i.test(i.descripcion))) {
98
+ return { condicionIva: CondicionIva.EXENTO, motivo: `IVA exento (impuesto 32).${advertencia}` };
99
+ }
100
+ if (tiene((i) => i.id === ImpuestoId.IVA_NO_ALCANZADO || /IVA.*NO\s+ALCANZADO/i.test(i.descripcion))) {
101
+ return { condicionIva: CondicionIva.IVA_NO_ALCANZADO, motivo: `IVA no alcanzado (impuesto 34).${advertencia}` };
102
+ }
103
+ if (esA5(persona) && persona.errorConstancia && impuestos.length === 0) {
104
+ return {
105
+ condicionIva: null,
106
+ motivo: `ARCA no emitió la constancia: ${persona.errorConstancia.error.join('; ')}.${advertencia}`,
107
+ };
108
+ }
109
+ return {
110
+ condicionIva: null,
111
+ motivo: 'No figura inscripto en IVA ni en monotributo: el padrón no alcanza para determinar la condición ' +
112
+ '(puede ser consumidor final o sujeto no categorizado según la operación).' +
113
+ advertencia,
114
+ };
115
+ }
116
+ //# sourceMappingURL=condicion-iva.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"condicion-iva.js","sourceRoot":"","sources":["../../src/condicion-iva.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ export { Provincia, DocTipo as TipoDocumento, CondicionIva } from '@ramiidv/arca-common';
2
+ export declare const ENDPOINTS: {
3
+ readonly wsaa: {
4
+ readonly testing: "https://wsaahomo.afip.gov.ar/ws/services/LoginCms";
5
+ readonly production: "https://wsaa.afip.gov.ar/ws/services/LoginCms";
6
+ };
7
+ /** Constancia de inscripción (ex Padrón A5: ws_sr_padron_a5 está deprecado por ARCA). */
8
+ readonly a5: {
9
+ readonly testing: "https://awshomo.afip.gov.ar/sr-padron/webservices/personaServiceA5";
10
+ readonly production: "https://aws.afip.gov.ar/sr-padron/webservices/personaServiceA5";
11
+ readonly namespace: "http://a5.soap.ws.server.puc.sr/";
12
+ readonly serviceId: "ws_sr_constancia_inscripcion";
13
+ };
14
+ readonly a13: {
15
+ readonly testing: "https://awshomo.afip.gov.ar/sr-padron/webservices/personaServiceA13";
16
+ readonly production: "https://aws.afip.gov.ar/sr-padron/webservices/personaServiceA13";
17
+ readonly namespace: "http://a13.soap.ws.server.puc.sr/";
18
+ readonly serviceId: "ws_sr_padron_a13";
19
+ };
20
+ readonly a4: {
21
+ readonly testing: "https://awshomo.afip.gov.ar/sr-padron/webservices/personaServiceA4";
22
+ readonly production: "https://aws.afip.gov.ar/sr-padron/webservices/personaServiceA4";
23
+ readonly namespace: "http://a4.soap.ws.server.puc.sr/";
24
+ readonly serviceId: "ws_sr_padron_a4";
25
+ };
26
+ readonly a10: {
27
+ readonly testing: "https://awshomo.afip.gov.ar/sr-padron/webservices/personaServiceA10";
28
+ readonly production: "https://aws.afip.gov.ar/sr-padron/webservices/personaServiceA10";
29
+ readonly namespace: "http://a10.soap.ws.server.puc.sr/";
30
+ readonly serviceId: "ws_sr_padron_a10";
31
+ };
32
+ readonly a100: {
33
+ readonly testing: "https://awshomo.afip.gov.ar/sr-parametros/webservices/parameterServiceA100";
34
+ readonly production: "https://aws.afip.gov.ar/sr-parametros/webservices/parameterServiceA100";
35
+ readonly namespace: "http://a100.soap.ws.server.pucParam.sr/";
36
+ readonly serviceId: "ws_sr_padron_a100";
37
+ };
38
+ };
39
+ /** Tipos de domicilio */
40
+ export declare enum TipoDomicilio {
41
+ FISCAL = "FISCAL",
42
+ LEGAL = "LEGAL",
43
+ REAL = "REAL"
44
+ }
45
+ /** Tipos de persona */
46
+ export declare enum TipoPersona {
47
+ FISICA = "FISICA",
48
+ JURIDICA = "JURIDICA"
49
+ }
50
+ /** IDs de impuestos comunes (SUPA) */
51
+ export declare enum ImpuestoId {
52
+ GANANCIAS_PJ = 10,
53
+ GANANCIAS_PH = 11,
54
+ /** Monotributo (manual ws_sr_constancia_inscripcion v4.1). */
55
+ MONOTRIBUTO = 20,
56
+ /**
57
+ * @deprecated El impuesto 20 es Monotributo (antes estaba mal rotulado). El
58
+ * monotributo social se identifica por la categoría (61, 99, 100), no por el impuesto.
59
+ */
60
+ MONOTRIBUTO_SOCIAL = 20,
61
+ IVA_RESPONSABLE_INSCRIPTO = 30,
62
+ BIENES_PERSONALES = 31,
63
+ IVA_EXENTO = 32,
64
+ IVA_NO_INSCRIPTO = 33,
65
+ IVA_NO_ALCANZADO = 34,
66
+ EMPLEADOR = 301
67
+ }
68
+ /** Estado de la clave fiscal del contribuyente */
69
+ export declare enum EstadoClave {
70
+ ACTIVO = "ACTIVO",
71
+ INACTIVO = "INACTIVO",
72
+ LIMITADO = "LIMITADO"
73
+ }
74
+ /** Nombres de colecciones disponibles en ws_sr_padron_a100 */
75
+ export declare enum CollectionName {
76
+ PROVINCIA = "SUPA.E_PROVINCIA",
77
+ TIPO_DOCUMENTO = "SUPA.TIPO_DOCUMENTO",
78
+ TIPO_DOMICILIO = "SUPA.TIPO_DOMICILIO",
79
+ TIPO_CLAVE = "SUPA.TIPO_CLAVE_IDENTIFICACION",
80
+ TIPO_EMPRESA_JURIDICA = "SUPA.TIPO_EMPRESA_JURIDICA",
81
+ TIPO_EMPRESA_JURIDICA_SUBGRUPO = "SUPA.TIPO_EMPRESA_JURI_SUBGRUPO",
82
+ TIPO_RELACION = "SUPA.TIPO_RELACION",
83
+ TIPO_SUBTIPO_RELACION = "SUPA.TIPO_SUBTIPO_RELACION",
84
+ TIPO_COMPONENTE_SOCIEDAD = "SUPA.TIPO_COMPONENTE_SOCIEDAD",
85
+ TIPO_RELACION_COMPONENTE_SOC = "SUPA.TIPO_RELACION_COMPONENTE_SOC",
86
+ TIPO_EMAIL = "SUPA.TIPO_EMAIL",
87
+ TIPO_TELEFONO = "SUPA.TIPO_TELEFONO",
88
+ TIPO_RESIDENCIA = "SUPA.TIPO_RESIDENCIA",
89
+ TIPO_DATO_ADICIONAL_DOMICILIO = "SUPA.TIPO_DATO_ADICIONAL_DOMICILIO",
90
+ ORGANISMO_INFORMANTE = "SUPA.E_ORGANISMO_INFORMANTE",
91
+ ORGANISMO_CONTROL = "SUPA.E_ORGANISMO_CONTROL",
92
+ PROVINCIA_SOCIEDAD_ORG = "SUPA.A_PROVINCIA_SOCIEDAD_ORG",
93
+ SEXO = "E_SEXO",
94
+ CALLE = "PUC_PARAM.T_CALLE",
95
+ LOCALIDAD = "PUC_PARAM.T_LOCALIDAD"
96
+ }
97
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,OAAO,IAAI,aAAa,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAMzF,eAAO,MAAM,SAAS;;;;;IAEpB,yFAAyF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BjF,CAAC;AAMX,yBAAyB;AACzB,oBAAY,aAAa;IACvB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED,uBAAuB;AACvB,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,QAAQ,aAAa;CACtB;AAED,sCAAsC;AACtC,oBAAY,UAAU;IACpB,YAAY,KAAK;IACjB,YAAY,KAAK;IACjB,8DAA8D;IAC9D,WAAW,KAAK;IAChB;;;OAGG;IACH,kBAAkB,KAAK;IACvB,yBAAyB,KAAK;IAC9B,iBAAiB,KAAK;IACtB,UAAU,KAAK;IACf,gBAAgB,KAAK;IACrB,gBAAgB,KAAK;IACrB,SAAS,MAAM;CAChB;AAED,kDAAkD;AAClD,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AAED,8DAA8D;AAC9D,oBAAY,cAAc;IACxB,SAAS,qBAAqB;IAC9B,cAAc,wBAAwB;IACtC,cAAc,wBAAwB;IACtC,UAAU,mCAAmC;IAC7C,qBAAqB,+BAA+B;IACpD,8BAA8B,oCAAoC;IAClE,aAAa,uBAAuB;IACpC,qBAAqB,+BAA+B;IACpD,wBAAwB,kCAAkC;IAC1D,4BAA4B,sCAAsC;IAClE,UAAU,oBAAoB;IAC9B,aAAa,uBAAuB;IACpC,eAAe,yBAAyB;IACxC,6BAA6B,uCAAuC;IACpE,oBAAoB,gCAAgC;IACpD,iBAAiB,6BAA6B;IAC9C,sBAAsB,kCAAkC;IACxD,IAAI,WAAW;IACf,KAAK,sBAAsB;IAC3B,SAAS,0BAA0B;CACpC"}