@ramiidv/arca-mtxca 0.3.0 → 0.5.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/CHANGELOG.md +141 -0
- package/README.md +73 -70
- package/dist/arca-mtxca.d.ts +3 -8
- package/dist/arca-mtxca.d.ts.map +1 -1
- package/dist/arca-mtxca.js +37 -73
- package/dist/arca-mtxca.js.map +1 -1
- package/dist/constants.d.ts +2 -2
- package/dist/constants.d.ts.map +1 -1
- package/dist/format.d.ts +0 -8
- package/dist/format.d.ts.map +1 -1
- package/dist/format.js +0 -43
- package/dist/format.js.map +1 -1
- package/dist/mtxca-client.d.ts +9 -6
- package/dist/mtxca-client.d.ts.map +1 -1
- package/dist/mtxca-client.js +164 -281
- package/dist/mtxca-client.js.map +1 -1
- package/dist/schemas.d.ts +104 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +285 -0
- package/dist/schemas.js.map +1 -0
- package/dist/serialize.d.ts +12 -29
- package/dist/serialize.d.ts.map +1 -1
- package/dist/serialize.js +93 -300
- package/dist/serialize.js.map +1 -1
- package/dist/types.d.ts +10 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/validation.d.ts +5 -0
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +32 -14
- package/dist/validation.js.map +1 -1
- package/llms.txt +3 -2
- package/package.json +19 -21
- package/dist/parse.d.ts +0 -31
- package/dist/parse.d.ts.map +0 -1
- package/dist/parse.js +0 -82
- package/dist/parse.js.map +0 -1
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.5.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- d535462: Cambio incompatible: se quitan `endpoint` y `wsaaEndpoint` (deprecados). Usar `endpoints: { mtxca, wsaa }`.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- 87f58c1: Un texto obligatorio vacío (o solo con espacios) da el error "no puede estar vacío" en lugar de `formato inválido (\S)`.
|
|
12
|
+
- Updated dependencies [87f58c1]
|
|
13
|
+
- @ramiidv/arca-common@0.6.0
|
|
14
|
+
|
|
15
|
+
## 0.4.0
|
|
16
|
+
|
|
17
|
+
### Minor Changes
|
|
18
|
+
|
|
19
|
+
- bed68e8: Paquetes solo ESM y Node >= 20.19. `arca-common`, `arca-facturacion` y
|
|
20
|
+
`arca-padron` dejan de publicar un build CommonJS: desde CommonJS se cargan con
|
|
21
|
+
`require()` (require(esm), Node >= 20.19 / 22.12). Todos los paquetes pasan a
|
|
22
|
+
requerir Node >= 20.19.0 (Node 18 y 20 sin soporte). El código vive ahora en el
|
|
23
|
+
monorepo `arca-sdks`.
|
|
24
|
+
- f8bd053: Las clases principales extienden `ArcaSdkBase` de arca-common, así que todos
|
|
25
|
+
los SDKs tienen la misma base: `wsaa`, `cuit`, `production`, `on()`/`off()`,
|
|
26
|
+
`clearAuthCache()`, `config.wsaa` (WsaaClient compartido) y `config.signal`
|
|
27
|
+
(signal global). arca-mtxca acepta `endpoints: { mtxca, wsaa }` (`endpoint` y
|
|
28
|
+
`wsaaEndpoint` quedan deprecados). Los `dummy`/`status` validan la respuesta con
|
|
29
|
+
`parseServerStatus`: si falta un campo lanzan `ArcaSoapError`.
|
|
30
|
+
- c9f1444: Requests y respuestas se validan, serializan y decodifican con el DSL de
|
|
31
|
+
`@ramiidv/arca-common/schema`, transcripto del XSD oficial de cada servicio.
|
|
32
|
+
|
|
33
|
+
- Corrección: las respuestas se parsean sin conversión numérica, así que los
|
|
34
|
+
`xs:string` con contenido numérico ya no pierden ceros a la izquierda ni
|
|
35
|
+
decimales (ej: `"0012"`, `"1.50"`, `DocNro`, `codigoSeguridad`).
|
|
36
|
+
- Los campos desconocidos en el input se rechazan con `ArcaValidationError`
|
|
37
|
+
(antes se ignoraban).
|
|
38
|
+
- Todos los errores de validación se informan juntos (`details`), con mensajes
|
|
39
|
+
del tipo `campo: motivo`. Cambió el texto de los mensajes.
|
|
40
|
+
- arca-fecred deja de recortar espacios de los textos y envía `codCtaCte` tal
|
|
41
|
+
cual; porcentaje y cotización se envían con decimales fijos.
|
|
42
|
+
|
|
43
|
+
### Patch Changes
|
|
44
|
+
|
|
45
|
+
- fd438bc: `@ramiidv/arca-common/testing` exporta `loadXsdTypes` y `checkSchemaAgainstXsd`
|
|
46
|
+
para comparar los schemas del DSL con el XSD de un WSDL oficial. Todos los
|
|
47
|
+
schemas de agro, cdc, fecred, mtxca, padron y sire se verifican contra los WSDL
|
|
48
|
+
de producción. arca-mtxca: los renombres API ↔ XML usan `xml()` del DSL y un
|
|
49
|
+
error en `actividades` se reporta en `actividades[i].codigo`.
|
|
50
|
+
- 20ecf7d: DSL de schemas, segunda versión:
|
|
51
|
+
|
|
52
|
+
- Corrección: `dec()` redondea sobre el valor decimal escrito (`8.575` →
|
|
53
|
+
`8.58`; antes daba `8.57` por la representación binaria). Afecta los importes
|
|
54
|
+
que los SDKs envían redondeados.
|
|
55
|
+
- `must()` rechaza también el valor vacío; los elementos `xsi:nil` cuentan
|
|
56
|
+
como ausentes (en una lista, como lista vacía); `must()` en listas exige el
|
|
57
|
+
elemento; un objeto opcional vacío se omite y uno obligatorio valida sus hijos.
|
|
58
|
+
- Al decodificar se validan enteros (`int()`) y valores permitidos
|
|
59
|
+
(`str({ values })`).
|
|
60
|
+
- Nuevos: `siNo()` (S/N ↔ boolean), `double()`, `xml(nombre, campo)` (nombre
|
|
61
|
+
distinto en el XML), `custom(encode, decode)`, `roundHalfUp()` y
|
|
62
|
+
`decodeResponse(..., { emptyLists: 'omit' })`.
|
|
63
|
+
- Updated dependencies [8c02c30]
|
|
64
|
+
- Updated dependencies [f8bd053]
|
|
65
|
+
- Updated dependencies [242fb5f]
|
|
66
|
+
- Updated dependencies [fd438bc]
|
|
67
|
+
- Updated dependencies [bed68e8]
|
|
68
|
+
- Updated dependencies [20ecf7d]
|
|
69
|
+
- Updated dependencies [b86db00]
|
|
70
|
+
- @ramiidv/arca-common@0.5.0
|
|
71
|
+
|
|
72
|
+
## 0.3.0 (2026-11-01)
|
|
73
|
+
|
|
74
|
+
Revisión completa contra el WSDL de WSMTXCA y el manual del desarrollador (v0.25.8). Las versiones anteriores no podían autorizar comprobantes: el request no cumplía el XSD.
|
|
75
|
+
|
|
76
|
+
### Breaking
|
|
77
|
+
|
|
78
|
+
- Requiere `@ramiidv/arca-common` ^0.4.0.
|
|
79
|
+
- `autorizar()` recibe el `ComprobanteType` con los nombres del XSD (`codigoTipoComprobante`, `numeroPuntoVenta`, `codigoConcepto`, `codigoTipoDocumento`, `numeroDocumento`, `fechaEmision`, `importeSubtotal`, `codigoMoneda`, `fechaServicioDesde/Hasta`, `fechaVencimientoPago`, `comprobantesAsociados`, ...) en lugar de `{ ptoVta, cbteTipo, invoice }`. `importeSubtotal` y `codigoMoneda` son obligatorios.
|
|
80
|
+
- Ítems: `unidadMedida` → `codigoUnidadMedida`; `cantidad`, `precioUnitario` e `importeIVA` pasan a ser opcionales según las reglas del manual; se agregan `unidadesMtx` y `codigoMtx`.
|
|
81
|
+
- `SubtotalIVA` ya no tiene `baseImponible`; `MtxcaTributo` → `MtxcaOtroTributo` (`codigo`, sin `alicuota`).
|
|
82
|
+
- `autorizar()` devuelve `MtxcaAutorizarResult`: `resultado` `'A' | 'O' | 'R'` y, si no es `R`, `comprobante` con `cae` y `fechaVencimientoCAE`.
|
|
83
|
+
- `consultarComprobante()` devuelve `{ comprobante, observaciones, evento }` con el `ComprobanteType` completo, y lanza `ArcaServiceError` si el comprobante no existe.
|
|
84
|
+
- Las consultas lanzan `ArcaServiceError` ante `arrayErrores` (antes devolvían 0, objetos de ceros o listas vacías).
|
|
85
|
+
- Parámetros: devuelven `{ codigo, descripcion }` (antes `{ Id, Desc, FchDesde, FchHasta }`, campos que no existen en WSMTXCA). Puntos de venta: `{ numeroPuntoVenta, bloqueado, fechaBaja? }`.
|
|
86
|
+
- `getCotizacionMoneda(codigo, fecha?)` devuelve `{ codigoMoneda, fechaCotizacion, cotizacion: number | null }`.
|
|
87
|
+
- `MtxcaClient` recibe `endpoint` (en lugar de `production`) y `MtxcaAuth` es `{ token, sign, cuitRepresentada }`.
|
|
88
|
+
- `ArcaMtxcaConfig` extiende `ArcaBaseConfig`; `cuit` acepta string y se valida el dígito verificador.
|
|
89
|
+
- `clearAuthCache()` es async.
|
|
90
|
+
- `CbteTipo`: 51–53 se renombran a `*_A_SUJETA_RETENCION` (no son clase M). `CodigoCondicionIVA`: se quitan 7, 8 y 9 (no figuran en el manual de WSMTXCA). `Moneda`: solo `PES`, `DOL` y `060`; el resto, con `getMonedas()`.
|
|
91
|
+
- `validateAutorizarRequest`/`validateMtxcaItem` → `validateComprobanteCAE`/`validateComprobanteCAEA`.
|
|
92
|
+
|
|
93
|
+
### Features
|
|
94
|
+
|
|
95
|
+
- Numeración automática real en `autorizar()` (último autorizado + 1; el error 1502 "sin comprobantes" cuenta como 0) y número explícito opcional.
|
|
96
|
+
- `condicionIVAReceptor` (RG 5616) y `getCondicionesIVAReceptor()`.
|
|
97
|
+
- CAEA: `solicitarCAEA`, `consultarCAEA`, `consultarCAEAEntreFechas`, `informarComprobanteCAEA`, `informarAjusteIVACAEA`, `informarCAEANoUtilizado`, `informarCAEANoUtilizadoPtoVta`, `consultarPtosVtaCAEANoInformados`.
|
|
98
|
+
- `autorizarAjusteIVA`, `getTiposTributo`, `getTiposDatosAdicionales`, `getActividadesVigentes`.
|
|
99
|
+
- Campos del XSD que faltaban: `cancelaEnMismaMonedaExtranjera`, `periodoComprobantesAsociados`, `datosAdicionales`, `compradores`, `actividades`.
|
|
100
|
+
- Validación local de las reglas excluyentes del manual (presencia por unidad de medida 97/99, fórmulas de ítem, subtotales de IVA por alícuota, gravado/no gravado/exento/subtotal/total con el margen de error del manual), desactivable con `{ validarImportes: false }`.
|
|
101
|
+
- Redondeo según el XSD (2 decimales en importes, 6 en cantidad/precio/bonificación/cotización); `roundImporte` y `roundDecimal` exportados.
|
|
102
|
+
- Opciones de `ArcaBaseConfig`: `ticketStorage`, `clockOffsetMs`, `autoClockSkew`, `loginErrorCooldownMs`, `fetch`, `legacyTls`, `tokenTTLMinutes`; overrides `endpoint` y `wsaaEndpoint`.
|
|
103
|
+
- Todos los métodos aceptan `opts?: CallOptions` (`signal`).
|
|
104
|
+
- Se exportan `ArcaValidationError`, `ArcaTicketVigenteError`, `MemoryTicketStorage` y `FileTicketStorage`.
|
|
105
|
+
|
|
106
|
+
### Fixes
|
|
107
|
+
|
|
108
|
+
- Namespace `http://impl.service.wsmtxca.afip.gov.ar/service/`, SOAPAction del WSDL y elementos `{operacion}Request` / `{operacion}Response` (verificado con `dummy` en homologación).
|
|
109
|
+
- `ComprobanteType` con los elementos en el orden de la secuencia del XSD y `numeroComprobante` incluido.
|
|
110
|
+
- Las emisiones (`autorizar*`, `informar*`, `solicitarCAEA`) usan `kind: 'emision'`: no se reintentan y los errores con resultado desconocido tienen `uncertain: true`.
|
|
111
|
+
- `consultarCotizacionMoneda` envía `fechaCotizacion` (obligatorio) y lee solo `cotizacionMoneda`.
|
|
112
|
+
- Puntos de venta: se elimina `EmisionTipo` (no existe en la respuesta).
|
|
113
|
+
- Ítems de bonificación/seña (unidad 99/97) se envían sin cantidad ni precio.
|
|
114
|
+
- La validación ya no traga errores que no son de validación.
|
|
115
|
+
|
|
116
|
+
## 0.2.0 (2026-06-03)
|
|
117
|
+
|
|
118
|
+
### Fixes
|
|
119
|
+
|
|
120
|
+
- Build standalone en CI: el lockfile resolvía `@ramiidv/arca-common` como ruta local; se regeneró para resolverlo desde npm.
|
|
121
|
+
|
|
122
|
+
### Chore
|
|
123
|
+
|
|
124
|
+
- Workflow de release (publicación por tag) y workflow de CI para Node 18/20/22.
|
|
125
|
+
- Homepage: <https://arca-sdk.dev/mtxca>.
|
|
126
|
+
|
|
127
|
+
## 0.1.0 (2026-03-31)
|
|
128
|
+
|
|
129
|
+
### Features
|
|
130
|
+
|
|
131
|
+
- Initial release
|
|
132
|
+
- Authorize invoices with item-level detail (barcodes, quantities, unit prices) via `autorizar()`
|
|
133
|
+
- Query last authorized comprobante number via `ultimoComprobante()`
|
|
134
|
+
- Compute next comprobante number via `siguienteComprobante()`
|
|
135
|
+
- Retrieve previously authorized comprobantes via `consultarComprobante()`
|
|
136
|
+
- Query parameter tables: tipos comprobante, tipos documento, alicuotas IVA, condiciones IVA, monedas, unidades de medida, puntos de venta, cotizacion de monedas
|
|
137
|
+
- Input validation for `autorizar()` request and item-level fields
|
|
138
|
+
- Enum helpers for CbteTipo, Concepto, CodigoCondicionIVA, and Moneda
|
|
139
|
+
- Service health check via `status()`
|
|
140
|
+
- Automatic WSAA authentication with ticket caching
|
|
141
|
+
- Full TypeScript support with strict types
|
package/README.md
CHANGED
|
@@ -46,18 +46,20 @@ const res = await mtxca.autorizar({
|
|
|
46
46
|
codigoMoneda: Moneda.PESOS,
|
|
47
47
|
cotizacionMoneda: 1,
|
|
48
48
|
codigoConcepto: Concepto.PRODUCTOS,
|
|
49
|
-
items: [
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
49
|
+
items: [
|
|
50
|
+
{
|
|
51
|
+
unidadesMtx: 1,
|
|
52
|
+
codigoMtx: '7790001000012',
|
|
53
|
+
codigo: 'P0001',
|
|
54
|
+
descripcion: 'Producto de ejemplo',
|
|
55
|
+
cantidad: 1,
|
|
56
|
+
codigoUnidadMedida: 7,
|
|
57
|
+
precioUnitario: 100, // clase A: sin IVA
|
|
58
|
+
codigoCondicionIVA: CodigoCondicionIVA.IVA_21,
|
|
59
|
+
importeIVA: 21,
|
|
60
|
+
importeItem: 121, // con IVA incluido
|
|
61
|
+
},
|
|
62
|
+
],
|
|
61
63
|
subtotalesIVA: [{ codigo: CodigoCondicionIVA.IVA_21, importe: 21 }],
|
|
62
64
|
});
|
|
63
65
|
|
|
@@ -72,27 +74,28 @@ if (res.resultado === 'R') {
|
|
|
72
74
|
|
|
73
75
|
## Configuración
|
|
74
76
|
|
|
75
|
-
`ArcaMtxcaConfig` extiende `
|
|
76
|
-
|
|
77
|
-
| Opción
|
|
78
|
-
|
|
|
79
|
-
| `cert`, `key`
|
|
80
|
-
| `cuit`
|
|
81
|
-
| `production`
|
|
82
|
-
| `
|
|
83
|
-
| `
|
|
84
|
-
| `
|
|
85
|
-
| `
|
|
86
|
-
| `
|
|
87
|
-
| `
|
|
88
|
-
| `
|
|
77
|
+
`ArcaMtxcaConfig` extiende `ArcaSdkConfig` de `@ramiidv/arca-common`:
|
|
78
|
+
|
|
79
|
+
| Opción | Descripción |
|
|
80
|
+
| --------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
|
|
81
|
+
| `cert`, `key` | Certificado y clave privada PEM. |
|
|
82
|
+
| `cuit` | CUIT representada (número o string, con o sin guiones). Se valida el dígito verificador. |
|
|
83
|
+
| `production` | `false` (default) = homologación. |
|
|
84
|
+
| `endpoints` | `{ mtxca?, wsaa? }`: URLs propias (proxy, mock). Ignoran `production`. |
|
|
85
|
+
| `wsaa` | `WsaaClient` compartido con otros SDKs del mismo certificado. |
|
|
86
|
+
| `signal` | `AbortSignal` global: cancela todas las llamadas de la instancia. |
|
|
87
|
+
| `timeout`, `retries`, `retryDelayMs` | Transporte. `retries` solo aplica a consultas. |
|
|
88
|
+
| `ticketStorage` | Storage persistente de tickets WSAA (recomendado en producción). |
|
|
89
|
+
| `tokenTTLMinutes`, `clockOffsetMs`, `autoClockSkew`, `loginErrorCooldownMs` | Opciones de WSAA. |
|
|
90
|
+
| `fetch`, `legacyTls` | `fetch` propio (proxy, tests) y transporte TLS legacy. |
|
|
91
|
+
| `onEvent` | Callback de eventos (`auth:*`, `request:*`). |
|
|
89
92
|
|
|
90
93
|
Endpoints (manual WSMTXCA):
|
|
91
94
|
|
|
92
|
-
| Entorno
|
|
93
|
-
|
|
|
94
|
-
| Homologación | `https://fwshomo.afip.gov.ar/wsmtxca/services/MTXCAService`
|
|
95
|
-
| Producción
|
|
95
|
+
| Entorno | URL |
|
|
96
|
+
| ------------ | ----------------------------------------------------------------- |
|
|
97
|
+
| Homologación | `https://fwshomo.afip.gov.ar/wsmtxca/services/MTXCAService` |
|
|
98
|
+
| Producción | `https://serviciosjava.afip.gob.ar/wsmtxca/services/MTXCAService` |
|
|
96
99
|
|
|
97
100
|
Todos los métodos aceptan un último parámetro `opts?: CallOptions` con `signal` para cancelar.
|
|
98
101
|
|
|
@@ -125,15 +128,15 @@ subtotalesIVA: [{ codigo: 5, importe: 18.9 }],
|
|
|
125
128
|
|
|
126
129
|
## Resultado de una autorización y manejo de errores
|
|
127
130
|
|
|
128
|
-
| Situación
|
|
129
|
-
|
|
|
130
|
-
| Datos inválidos localmente
|
|
131
|
-
| ARCA aprueba
|
|
132
|
-
| ARCA aprueba con observaciones | `{ resultado: 'O', comprobante, observaciones }`
|
|
133
|
-
| ARCA rechaza
|
|
134
|
-
| Consulta con `arrayErrores`
|
|
135
|
-
| Fault SOAP, HTTP, red, timeout | `ArcaSoapError` (`uncertain`, `faultString`, `statusCode`).
|
|
136
|
-
| Login WSAA
|
|
131
|
+
| Situación | Qué pasa |
|
|
132
|
+
| ------------------------------ | -------------------------------------------------------------------- |
|
|
133
|
+
| Datos inválidos localmente | `ArcaValidationError` (no se hace ningún request). |
|
|
134
|
+
| ARCA aprueba | `{ resultado: 'A', comprobante: { cae, fechaVencimientoCAE, ... } }` |
|
|
135
|
+
| ARCA aprueba con observaciones | `{ resultado: 'O', comprobante, observaciones }` |
|
|
136
|
+
| ARCA rechaza | `{ resultado: 'R', errores }` — **no lanza**; revisá `resultado`. |
|
|
137
|
+
| Consulta con `arrayErrores` | `ArcaServiceError` con `errors[]` (`code`, `msg`). |
|
|
138
|
+
| Fault SOAP, HTTP, red, timeout | `ArcaSoapError` (`uncertain`, `faultString`, `statusCode`). |
|
|
139
|
+
| Login WSAA | `ArcaAuthError` / `ArcaTicketVigenteError`. |
|
|
137
140
|
|
|
138
141
|
`ultimoComprobante()` devuelve 0 solo ante el error 1502 de ARCA ("no hay comprobantes para ese punto de venta y tipo"); cualquier otro error lanza.
|
|
139
142
|
|
|
@@ -169,44 +172,44 @@ Las solicitudes de un mismo punto de venta y tipo deben ser secuenciales (ARCA r
|
|
|
169
172
|
|
|
170
173
|
### Comprobantes con CAE
|
|
171
174
|
|
|
172
|
-
| Método
|
|
173
|
-
|
|
|
174
|
-
| `autorizar(req, opts?)`
|
|
175
|
-
| `autorizarAjusteIVA(req, opts?)`
|
|
176
|
-
| `ultimoComprobante(ptoVta, cbteTipo, opts?)`
|
|
177
|
-
| `siguienteComprobante(ptoVta, cbteTipo, opts?)`
|
|
175
|
+
| Método | Operación WSMTXCA |
|
|
176
|
+
| -------------------------------------------------------- | ------------------------------------------------------------------ |
|
|
177
|
+
| `autorizar(req, opts?)` | `autorizarComprobante` (número automático si se omite) |
|
|
178
|
+
| `autorizarAjusteIVA(req, opts?)` | `autorizarAjusteIVA` (solo valida el XSD: tiene reglas propias) |
|
|
179
|
+
| `ultimoComprobante(ptoVta, cbteTipo, opts?)` | `consultarUltimoComprobanteAutorizado` |
|
|
180
|
+
| `siguienteComprobante(ptoVta, cbteTipo, opts?)` | último + 1 |
|
|
178
181
|
| `consultarComprobante(cbteTipo, ptoVta, cbteNro, opts?)` | `consultarComprobante` → `{ comprobante, observaciones, evento? }` |
|
|
179
182
|
|
|
180
183
|
### CAEA
|
|
181
184
|
|
|
182
|
-
| Método
|
|
183
|
-
|
|
|
184
|
-
| `solicitarCAEA(periodo, orden, opts?)`
|
|
185
|
-
| `consultarCAEA(caea, opts?)`
|
|
186
|
-
| `consultarCAEAEntreFechas(desde, hasta, opts?)`
|
|
187
|
-
| `informarComprobanteCAEA(comp, opts?)`
|
|
188
|
-
| `informarAjusteIVACAEA(comp, opts?)`
|
|
189
|
-
| `informarCAEANoUtilizado(caea, opts?)`
|
|
190
|
-
| `informarCAEANoUtilizadoPtoVta(caea, ptoVta, opts?)` | `informarCAEANoUtilizadoPtoVta`
|
|
191
|
-
| `consultarPtosVtaCAEANoInformados(caea, opts?)`
|
|
185
|
+
| Método | Operación WSMTXCA |
|
|
186
|
+
| ---------------------------------------------------- | ---------------------------------------------------- |
|
|
187
|
+
| `solicitarCAEA(periodo, orden, opts?)` | `solicitarCAEA` (`periodo` AAAAMM, `orden` 1 o 2) |
|
|
188
|
+
| `consultarCAEA(caea, opts?)` | `consultarCAEA` |
|
|
189
|
+
| `consultarCAEAEntreFechas(desde, hasta, opts?)` | `consultarCAEAEntreFechas` |
|
|
190
|
+
| `informarComprobanteCAEA(comp, opts?)` | `informarComprobanteCAEA` (`comp.caea` = CAEA usado) |
|
|
191
|
+
| `informarAjusteIVACAEA(comp, opts?)` | `informarAjusteIVACAEA` |
|
|
192
|
+
| `informarCAEANoUtilizado(caea, opts?)` | `informarCAEANoUtilizado` |
|
|
193
|
+
| `informarCAEANoUtilizadoPtoVta(caea, ptoVta, opts?)` | `informarCAEANoUtilizadoPtoVta` |
|
|
194
|
+
| `consultarPtosVtaCAEANoInformados(caea, opts?)` | `consultarPtosVtaCAEANoInformados` |
|
|
192
195
|
|
|
193
196
|
### Parámetros y estado
|
|
194
197
|
|
|
195
|
-
| Método
|
|
196
|
-
|
|
|
197
|
-
| `status()`
|
|
198
|
-
| `getTiposComprobante()`
|
|
199
|
-
| `getTiposDocumento()`
|
|
200
|
-
| `getAlicuotasIVA()`
|
|
201
|
-
| `getCondicionesIVA()`
|
|
202
|
-
| `getCondicionesIVAReceptor(cbteTipo)`
|
|
203
|
-
| `getMonedas()`
|
|
204
|
-
| `getCotizacionMoneda(codigo, fecha?)`
|
|
205
|
-
| `getUnidadesMedida()`
|
|
206
|
-
| `getTiposTributo()`
|
|
207
|
-
| `getTiposDatosAdicionales()`
|
|
208
|
-
| `getActividadesVigentes()`
|
|
209
|
-
| `getPuntosVenta()` / `getPuntosVentaCAE()` / `getPuntosVentaCAEA()` | `consultarPuntosVenta*`
|
|
198
|
+
| Método | Operación | Devuelve |
|
|
199
|
+
| ------------------------------------------------------------------- | --------------------------------- | --------------------------------------------------------------- |
|
|
200
|
+
| `status()` | `dummy` (sin auth) | `{ appserver, dbserver, authserver }` |
|
|
201
|
+
| `getTiposComprobante()` | `consultarTiposComprobante` | `CodigoDescripcion[]` |
|
|
202
|
+
| `getTiposDocumento()` | `consultarTiposDocumento` | `CodigoDescripcion[]` |
|
|
203
|
+
| `getAlicuotasIVA()` | `consultarAlicuotasIVA` | `CodigoDescripcion[]` |
|
|
204
|
+
| `getCondicionesIVA()` | `consultarCondicionesIVA` | `CodigoDescripcion[]` |
|
|
205
|
+
| `getCondicionesIVAReceptor(cbteTipo)` | `consultarCondicionesIVAReceptor` | `CodigoDescripcion[]` |
|
|
206
|
+
| `getMonedas()` | `consultarMonedas` | `{ codigo: string, descripcion }[]` |
|
|
207
|
+
| `getCotizacionMoneda(codigo, fecha?)` | `consultarCotizacionMoneda` | `{ codigoMoneda, fechaCotizacion, cotizacion: number \| null }` |
|
|
208
|
+
| `getUnidadesMedida()` | `consultarUnidadesMedida` | `CodigoDescripcion[]` |
|
|
209
|
+
| `getTiposTributo()` | `consultarTiposTributo` | `CodigoDescripcion[]` |
|
|
210
|
+
| `getTiposDatosAdicionales()` | `consultarTiposDatosAdicionales` | `CodigoDescripcion[]` |
|
|
211
|
+
| `getActividadesVigentes()` | `consultarActividadesVigentes` | `{ codigo, orden, descripcion }[]` |
|
|
212
|
+
| `getPuntosVenta()` / `getPuntosVentaCAE()` / `getPuntosVentaCAEA()` | `consultarPuntosVenta*` | `{ numeroPuntoVenta, bloqueado, fechaBaja? }[]` |
|
|
210
213
|
|
|
211
214
|
`getCotizacionMoneda` usa la fecha de hoy si no se indica; `cotizacion` es `null` cuando ARCA no tiene cotización (responde sin valor y sin error).
|
|
212
215
|
|
package/dist/arca-mtxca.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ArcaSdkBase } from '@ramiidv/arca-common';
|
|
2
2
|
import type { CallOptions, ServerStatus } from '@ramiidv/arca-common';
|
|
3
3
|
import { MtxcaClient } from './mtxca-client.js';
|
|
4
4
|
import type { ActividadVigente, ArcaMtxcaConfig, AutorizarOptions, AutorizarRequest, CodigoDescripcion, CodigoDescripcionString, CotizacionResult, FechaInput, MtxcaAutorizarResult, MtxcaCAEA, MtxcaCAEANoUtilizadoResult, MtxcaComprobanteCAEA, MtxcaConsultaComprobanteResult, MtxcaInformarCAEAResult, PuntoVenta } from './types.js';
|
|
@@ -14,13 +14,10 @@ import type { ActividadVigente, ArcaMtxcaConfig, AutorizarOptions, AutorizarRequ
|
|
|
14
14
|
* else console.log(res.comprobante.cae);
|
|
15
15
|
* ```
|
|
16
16
|
*/
|
|
17
|
-
export declare class ArcaMtxca {
|
|
18
|
-
/** Cliente WSAA (acceso directo). */
|
|
19
|
-
readonly wsaa: WsaaClient;
|
|
17
|
+
export declare class ArcaMtxca extends ArcaSdkBase<'mtxca'> {
|
|
20
18
|
/** Cliente SOAP de bajo nivel (acceso directo). */
|
|
21
19
|
readonly client: MtxcaClient;
|
|
22
|
-
/**
|
|
23
|
-
readonly cuit: string;
|
|
20
|
+
/** @throws ArcaValidationError si la CUIT es inválida. */
|
|
24
21
|
constructor(config: ArcaMtxcaConfig);
|
|
25
22
|
private auth;
|
|
26
23
|
/**
|
|
@@ -101,7 +98,5 @@ export declare class ArcaMtxca {
|
|
|
101
98
|
getPuntosVenta(opts?: CallOptions): Promise<PuntoVenta[]>;
|
|
102
99
|
getPuntosVentaCAE(opts?: CallOptions): Promise<PuntoVenta[]>;
|
|
103
100
|
getPuntosVentaCAEA(opts?: CallOptions): Promise<PuntoVenta[]>;
|
|
104
|
-
/** Descarta el ticket de acceso de WSMTXCA (memoria y `ticketStorage`). */
|
|
105
|
-
clearAuthCache(): Promise<void>;
|
|
106
101
|
}
|
|
107
102
|
//# sourceMappingURL=arca-mtxca.d.ts.map
|
package/dist/arca-mtxca.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arca-mtxca.d.ts","sourceRoot":"","sources":["../src/arca-mtxca.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"arca-mtxca.d.ts","sourceRoot":"","sources":["../src/arca-mtxca.ts"],"names":[],"mappings":"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"}
|
package/dist/arca-mtxca.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { ArcaServiceError, formatDate
|
|
1
|
+
import { ArcaSdkBase, ArcaServiceError, formatDate } from '@ramiidv/arca-common';
|
|
2
2
|
import { MTXCA_ENDPOINTS, MTXCA_SERVICE_ID } from './constants.js';
|
|
3
3
|
import { MtxcaClient } from './mtxca-client.js';
|
|
4
4
|
import { buildComprobante } from './serialize.js';
|
|
5
|
-
import {
|
|
5
|
+
import { reglasComprobanteCAE, reglasComprobanteCAEA } from './validation.js';
|
|
6
6
|
/** Error 1502 de consultarUltimoComprobanteAutorizado: no hay comprobantes para ese punto de venta y tipo. */
|
|
7
7
|
const SIN_COMPROBANTES = 1502;
|
|
8
8
|
/**
|
|
@@ -17,45 +17,19 @@ const SIN_COMPROBANTES = 1502;
|
|
|
17
17
|
* else console.log(res.comprobante.cae);
|
|
18
18
|
* ```
|
|
19
19
|
*/
|
|
20
|
-
export class ArcaMtxca {
|
|
21
|
-
/** Cliente WSAA (acceso directo). */
|
|
22
|
-
wsaa;
|
|
20
|
+
export class ArcaMtxca extends ArcaSdkBase {
|
|
23
21
|
/** Cliente SOAP de bajo nivel (acceso directo). */
|
|
24
22
|
client;
|
|
25
|
-
/**
|
|
26
|
-
cuit;
|
|
23
|
+
/** @throws ArcaValidationError si la CUIT es inválida. */
|
|
27
24
|
constructor(config) {
|
|
28
|
-
|
|
29
|
-
const production = config.production ?? false;
|
|
30
|
-
this.wsaa = new WsaaClient({
|
|
31
|
-
cert: config.cert,
|
|
32
|
-
key: config.key,
|
|
33
|
-
production,
|
|
34
|
-
endpoint: config.wsaaEndpoint,
|
|
35
|
-
tokenTTLMinutes: config.tokenTTLMinutes,
|
|
36
|
-
timeout: config.timeout,
|
|
37
|
-
retries: config.retries,
|
|
38
|
-
retryDelayMs: config.retryDelayMs,
|
|
39
|
-
onEvent: config.onEvent,
|
|
40
|
-
ticketStorage: config.ticketStorage,
|
|
41
|
-
clockOffsetMs: config.clockOffsetMs,
|
|
42
|
-
autoClockSkew: config.autoClockSkew,
|
|
43
|
-
loginErrorCooldownMs: config.loginErrorCooldownMs,
|
|
44
|
-
fetch: config.fetch,
|
|
45
|
-
legacyTls: config.legacyTls,
|
|
46
|
-
});
|
|
25
|
+
super(config, { mtxca: MTXCA_SERVICE_ID });
|
|
47
26
|
this.client = new MtxcaClient({
|
|
48
|
-
endpoint:
|
|
49
|
-
|
|
50
|
-
retries: config.retries,
|
|
51
|
-
retryDelayMs: config.retryDelayMs,
|
|
52
|
-
onEvent: config.onEvent,
|
|
53
|
-
fetch: config.fetch,
|
|
54
|
-
legacyTls: config.legacyTls,
|
|
27
|
+
endpoint: this.endpoint(MTXCA_ENDPOINTS, config.endpoints?.mtxca),
|
|
28
|
+
...this.transport,
|
|
55
29
|
});
|
|
56
30
|
}
|
|
57
31
|
async auth(opts) {
|
|
58
|
-
const ticket = await this.
|
|
32
|
+
const ticket = await this.ticket('mtxca', opts);
|
|
59
33
|
return { token: ticket.token, sign: ticket.sign, cuitRepresentada: this.cuit };
|
|
60
34
|
}
|
|
61
35
|
// =========================================================================
|
|
@@ -88,16 +62,14 @@ export class ArcaMtxca {
|
|
|
88
62
|
}
|
|
89
63
|
async autorizarCAE(method, request, opts) {
|
|
90
64
|
// Valida antes de pedir el número: un error local no debe costar requests.
|
|
91
|
-
buildComprobante({ ...request, numeroComprobante: request?.numeroComprobante ?? 1 }, 'cae');
|
|
92
|
-
if (opts?.validarImportes !== false)
|
|
93
|
-
validateComprobanteCAE(request);
|
|
65
|
+
buildComprobante({ ...request, numeroComprobante: request?.numeroComprobante ?? 1 }, 'cae', opts?.validarImportes !== false ? reglasComprobanteCAE : undefined);
|
|
94
66
|
const numeroComprobante = request.numeroComprobante ??
|
|
95
67
|
(await this.siguienteComprobante(request.numeroPuntoVenta, request.codigoTipoComprobante, opts));
|
|
96
68
|
const auth = await this.auth(opts);
|
|
97
69
|
const comprobante = { ...request, numeroComprobante };
|
|
98
70
|
return method === 'autorizarComprobante'
|
|
99
|
-
? this.client.autorizarComprobante(auth, comprobante, opts)
|
|
100
|
-
: this.client.autorizarAjusteIVA(auth, comprobante, opts);
|
|
71
|
+
? this.client.autorizarComprobante(auth, comprobante, this.callOptions(opts))
|
|
72
|
+
: this.client.autorizarAjusteIVA(auth, comprobante, this.callOptions(opts));
|
|
101
73
|
}
|
|
102
74
|
/**
|
|
103
75
|
* Último número autorizado o informado para un punto de venta y tipo. Si no
|
|
@@ -107,7 +79,7 @@ export class ArcaMtxca {
|
|
|
107
79
|
async ultimoComprobante(ptoVta, cbteTipo, opts) {
|
|
108
80
|
const auth = await this.auth(opts);
|
|
109
81
|
try {
|
|
110
|
-
return await this.client.consultarUltimoComprobanteAutorizado(auth, ptoVta, cbteTipo, opts);
|
|
82
|
+
return await this.client.consultarUltimoComprobanteAutorizado(auth, ptoVta, cbteTipo, this.callOptions(opts));
|
|
111
83
|
}
|
|
112
84
|
catch (e) {
|
|
113
85
|
if (e instanceof ArcaServiceError && e.errors.length > 0 && e.errors.every((x) => x.code === SIN_COMPROBANTES)) {
|
|
@@ -123,7 +95,7 @@ export class ArcaMtxca {
|
|
|
123
95
|
/** Consulta un comprobante autorizado (CAE) o informado (CAEA). Lanza `ArcaServiceError` si no existe. */
|
|
124
96
|
async consultarComprobante(cbteTipo, ptoVta, cbteNro, opts) {
|
|
125
97
|
const auth = await this.auth(opts);
|
|
126
|
-
return this.client.consultarComprobante(auth, cbteTipo, ptoVta, cbteNro, opts);
|
|
98
|
+
return this.client.consultarComprobante(auth, cbteTipo, ptoVta, cbteNro, this.callOptions(opts));
|
|
127
99
|
}
|
|
128
100
|
// =========================================================================
|
|
129
101
|
// CAEA
|
|
@@ -135,17 +107,17 @@ export class ArcaMtxca {
|
|
|
135
107
|
*/
|
|
136
108
|
async solicitarCAEA(periodo, orden, opts) {
|
|
137
109
|
const auth = await this.auth(opts);
|
|
138
|
-
return this.client.solicitarCAEA(auth, periodo, orden, opts);
|
|
110
|
+
return this.client.solicitarCAEA(auth, periodo, orden, this.callOptions(opts));
|
|
139
111
|
}
|
|
140
112
|
/** Consulta un CAEA otorgado. */
|
|
141
113
|
async consultarCAEA(caea, opts) {
|
|
142
114
|
const auth = await this.auth(opts);
|
|
143
|
-
return this.client.consultarCAEA(auth, caea, opts);
|
|
115
|
+
return this.client.consultarCAEA(auth, caea, this.callOptions(opts));
|
|
144
116
|
}
|
|
145
117
|
/** CAEAs otorgados entre dos fechas. */
|
|
146
118
|
async consultarCAEAEntreFechas(fechaDesde, fechaHasta, opts) {
|
|
147
119
|
const auth = await this.auth(opts);
|
|
148
|
-
return this.client.consultarCAEAEntreFechas(auth, fechaDesde, fechaHasta, opts);
|
|
120
|
+
return this.client.consultarCAEAEntreFechas(auth, fechaDesde, fechaHasta, this.callOptions(opts));
|
|
149
121
|
}
|
|
150
122
|
/**
|
|
151
123
|
* Informa un comprobante emitido con CAEA (`informarComprobanteCAEA`). Valida
|
|
@@ -153,95 +125,87 @@ export class ArcaMtxca {
|
|
|
153
125
|
* `resultado: 'R'`. Ante `uncertain`, verificá con `consultarComprobante()`.
|
|
154
126
|
*/
|
|
155
127
|
async informarComprobanteCAEA(comprobante, opts) {
|
|
156
|
-
buildComprobante(comprobante, 'caea');
|
|
157
|
-
validateComprobanteCAEA(comprobante);
|
|
128
|
+
buildComprobante(comprobante, 'caea', reglasComprobanteCAEA);
|
|
158
129
|
const auth = await this.auth(opts);
|
|
159
|
-
return this.client.informarComprobanteCAEA(auth, comprobante, opts);
|
|
130
|
+
return this.client.informarComprobanteCAEA(auth, comprobante, this.callOptions(opts));
|
|
160
131
|
}
|
|
161
132
|
/** Informa un ajuste de IVA emitido con CAEA (`informarAjusteIVACAEA`). Solo valida el XSD. */
|
|
162
133
|
async informarAjusteIVACAEA(comprobante, opts) {
|
|
163
134
|
const auth = await this.auth(opts);
|
|
164
|
-
return this.client.informarAjusteIVACAEA(auth, comprobante, opts);
|
|
135
|
+
return this.client.informarAjusteIVACAEA(auth, comprobante, this.callOptions(opts));
|
|
165
136
|
}
|
|
166
137
|
/** Informa que un CAEA no se utilizó. Un rechazo devuelve `resultado: 'R'`. */
|
|
167
138
|
async informarCAEANoUtilizado(caea, opts) {
|
|
168
139
|
const auth = await this.auth(opts);
|
|
169
|
-
return this.client.informarCAEANoUtilizado(auth, caea, opts);
|
|
140
|
+
return this.client.informarCAEANoUtilizado(auth, caea, this.callOptions(opts));
|
|
170
141
|
}
|
|
171
142
|
/** Informa que un CAEA no se utilizó en un punto de venta. Un rechazo devuelve `resultado: 'R'`. */
|
|
172
143
|
async informarCAEANoUtilizadoPtoVta(caea, ptoVta, opts) {
|
|
173
144
|
const auth = await this.auth(opts);
|
|
174
|
-
return this.client.informarCAEANoUtilizadoPtoVta(auth, caea, ptoVta, opts);
|
|
145
|
+
return this.client.informarCAEANoUtilizadoPtoVta(auth, caea, ptoVta, this.callOptions(opts));
|
|
175
146
|
}
|
|
176
147
|
/** Puntos de venta que todavía no informaron movimientos para un CAEA. */
|
|
177
148
|
async consultarPtosVtaCAEANoInformados(caea, opts) {
|
|
178
149
|
const auth = await this.auth(opts);
|
|
179
|
-
return this.client.consultarPtosVtaCAEANoInformados(auth, caea, opts);
|
|
150
|
+
return this.client.consultarPtosVtaCAEANoInformados(auth, caea, this.callOptions(opts));
|
|
180
151
|
}
|
|
181
152
|
// =========================================================================
|
|
182
153
|
// Estado
|
|
183
154
|
// =========================================================================
|
|
184
155
|
/** Estado del servicio (`dummy`). No requiere autenticación. */
|
|
185
156
|
async status(opts) {
|
|
186
|
-
return this.client.dummy(opts);
|
|
157
|
+
return this.client.dummy(this.callOptions(opts));
|
|
187
158
|
}
|
|
188
159
|
// =========================================================================
|
|
189
160
|
// Parámetros
|
|
190
161
|
// =========================================================================
|
|
191
162
|
async getTiposComprobante(opts) {
|
|
192
|
-
return this.client.consultarTiposComprobante(await this.auth(opts), opts);
|
|
163
|
+
return this.client.consultarTiposComprobante(await this.auth(opts), this.callOptions(opts));
|
|
193
164
|
}
|
|
194
165
|
async getTiposDocumento(opts) {
|
|
195
|
-
return this.client.consultarTiposDocumento(await this.auth(opts), opts);
|
|
166
|
+
return this.client.consultarTiposDocumento(await this.auth(opts), this.callOptions(opts));
|
|
196
167
|
}
|
|
197
168
|
async getAlicuotasIVA(opts) {
|
|
198
|
-
return this.client.consultarAlicuotasIVA(await this.auth(opts), opts);
|
|
169
|
+
return this.client.consultarAlicuotasIVA(await this.auth(opts), this.callOptions(opts));
|
|
199
170
|
}
|
|
200
171
|
/** Condiciones de IVA de los ítems. */
|
|
201
172
|
async getCondicionesIVA(opts) {
|
|
202
|
-
return this.client.consultarCondicionesIVA(await this.auth(opts), opts);
|
|
173
|
+
return this.client.consultarCondicionesIVA(await this.auth(opts), this.callOptions(opts));
|
|
203
174
|
}
|
|
204
175
|
/** Condiciones de IVA del receptor admitidas para un tipo de comprobante (RG 5616). */
|
|
205
176
|
async getCondicionesIVAReceptor(cbteTipo, opts) {
|
|
206
|
-
return this.client.consultarCondicionesIVAReceptor(await this.auth(opts), cbteTipo, opts);
|
|
177
|
+
return this.client.consultarCondicionesIVAReceptor(await this.auth(opts), cbteTipo, this.callOptions(opts));
|
|
207
178
|
}
|
|
208
179
|
async getMonedas(opts) {
|
|
209
|
-
return this.client.consultarMonedas(await this.auth(opts), opts);
|
|
180
|
+
return this.client.consultarMonedas(await this.auth(opts), this.callOptions(opts));
|
|
210
181
|
}
|
|
211
182
|
/**
|
|
212
183
|
* Cotización de una moneda para una fecha (default: hoy en Argentina).
|
|
213
184
|
* `cotizacion` es `null` si ARCA no tiene cotización.
|
|
214
185
|
*/
|
|
215
186
|
async getCotizacionMoneda(codigoMoneda, fecha = formatDate(new Date()), opts) {
|
|
216
|
-
return this.client.consultarCotizacionMoneda(await this.auth(opts), codigoMoneda, fecha, opts);
|
|
187
|
+
return this.client.consultarCotizacionMoneda(await this.auth(opts), codigoMoneda, fecha, this.callOptions(opts));
|
|
217
188
|
}
|
|
218
189
|
async getUnidadesMedida(opts) {
|
|
219
|
-
return this.client.consultarUnidadesMedida(await this.auth(opts), opts);
|
|
190
|
+
return this.client.consultarUnidadesMedida(await this.auth(opts), this.callOptions(opts));
|
|
220
191
|
}
|
|
221
192
|
async getTiposTributo(opts) {
|
|
222
|
-
return this.client.consultarTiposTributo(await this.auth(opts), opts);
|
|
193
|
+
return this.client.consultarTiposTributo(await this.auth(opts), this.callOptions(opts));
|
|
223
194
|
}
|
|
224
195
|
async getTiposDatosAdicionales(opts) {
|
|
225
|
-
return this.client.consultarTiposDatosAdicionales(await this.auth(opts), opts);
|
|
196
|
+
return this.client.consultarTiposDatosAdicionales(await this.auth(opts), this.callOptions(opts));
|
|
226
197
|
}
|
|
227
198
|
async getActividadesVigentes(opts) {
|
|
228
|
-
return this.client.consultarActividadesVigentes(await this.auth(opts), opts);
|
|
199
|
+
return this.client.consultarActividadesVigentes(await this.auth(opts), this.callOptions(opts));
|
|
229
200
|
}
|
|
230
201
|
async getPuntosVenta(opts) {
|
|
231
|
-
return this.client.consultarPuntosVenta(await this.auth(opts), opts);
|
|
202
|
+
return this.client.consultarPuntosVenta(await this.auth(opts), this.callOptions(opts));
|
|
232
203
|
}
|
|
233
204
|
async getPuntosVentaCAE(opts) {
|
|
234
|
-
return this.client.consultarPuntosVentaCAE(await this.auth(opts), opts);
|
|
205
|
+
return this.client.consultarPuntosVentaCAE(await this.auth(opts), this.callOptions(opts));
|
|
235
206
|
}
|
|
236
207
|
async getPuntosVentaCAEA(opts) {
|
|
237
|
-
return this.client.consultarPuntosVentaCAEA(await this.auth(opts), opts);
|
|
238
|
-
}
|
|
239
|
-
// =========================================================================
|
|
240
|
-
// Cache
|
|
241
|
-
// =========================================================================
|
|
242
|
-
/** Descarta el ticket de acceso de WSMTXCA (memoria y `ticketStorage`). */
|
|
243
|
-
async clearAuthCache() {
|
|
244
|
-
await this.wsaa.clearTicket(MTXCA_SERVICE_ID);
|
|
208
|
+
return this.client.consultarPuntosVentaCAEA(await this.auth(opts), this.callOptions(opts));
|
|
245
209
|
}
|
|
246
210
|
}
|
|
247
211
|
//# sourceMappingURL=arca-mtxca.js.map
|