arca-sdk 1.0.4 → 1.1.1

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 CHANGED
@@ -4,6 +4,29 @@ Todos los cambios notables de este proyecto se documentan en este archivo.
4
4
 
5
5
  ---
6
6
 
7
+ ## [1.1.1] — 2026-03-03
8
+
9
+ ### ✨ Soporte para Opcionales y Resolución General 5616
10
+
11
+ - **Opcionales en WSFE**: Se agregó soporte completo para enviar el campo `<ar:Opcionales>` en todas las operaciones de emisión de comprobantes (Facturas A/B/C, Notas de Crédito, Notas de Débito, Recibos y Tickets).
12
+ - **Condición IVA Receptor**: Esto permite dar pleno cumplimiento a la reciente RG 5616 de AFIP, que hace obligatorio enviar la Condición frente al IVA del receptor en ciertas Facturas C, enviando el ID `1010` dentro de los opcionales.
13
+ - **Consulta de Comprobantes**: El método `WsfeService.getInvoice()` ahora retorna el array de `optionals` si el comprobante los posee.
14
+
15
+ ---
16
+
17
+ ## [1.1.0] — 2026-02-28
18
+
19
+ ### ✨ Nuevos Comprobantes (Vouchers)
20
+
21
+ Se expandió la funcionalidad del servicio de facturación (`WsfeService`) para cubrir el espectro completo de comprobantes básicos:
22
+
23
+ - **Notas de Crédito**: Agregados métodos `issueCreditNoteA()`, `issueCreditNoteB()` y `issueCreditNoteC()`.
24
+ - **Notas de Débito**: Agregados métodos `issueDebitNoteA()`, `issueDebitNoteB()` y `issueDebitNoteC()`.
25
+ - **Recibos**: Agregados métodos `issueReceiptA()`, `issueReceiptB()` y `issueReceiptC()`.
26
+ - **Comprobantes Asociados**: El SDK ahora genera correctamente el nodo `<ar:CbtesAsoc>` de forma obligatoria para emitir NC/ND, asegurando que la operación de contingencia (anulación total o parcial de una factura) respete el estándar del ente recaudador.
27
+
28
+ ---
29
+
7
30
  ## [1.0.4] — 2026-02-27
8
31
 
9
32
  ### 🐛 Bugfix — Timezone Handling
package/README.md CHANGED
@@ -127,9 +127,12 @@ console.log('QR:', result.qrUrl); // 'https://www.afip.gob.ar/fe/qr/
127
127
  |--------|-------------|---------------|
128
128
  | `issueSimpleReceipt()` | Ticket C | Monto total, sin detalle. Ideal para POS simple |
129
129
  | `issueReceipt()` | Ticket C + items | Con detalle de productos guardado localmente |
130
- | `issueInvoiceC()` | Factura C | Monotributistas a consumidor final |
130
+ | `issueInvoiceC()` | Factura C | Monotributistas a consumidor final / Empresas |
131
131
  | `issueInvoiceB()` | Factura B | Responsable Inscripto a consumidor final / Monotributo |
132
132
  | `issueInvoiceA()` | Factura A | Responsable Inscripto a Responsable Inscripto |
133
+ | `issueCreditNoteA/B/C()` | Nota de Crédito | Anulación/Devolución (Requiere asociar la factura original) |
134
+ | `issueDebitNoteA/B/C()` | Nota de Débito | Cobro extra/Penalidad (Requiere asociar la factura original) |
135
+ | `issueReceiptA/B/C()` | Recibo | Comprobante de pago (misma emisión que una factura) |
133
136
 
134
137
  ### ✅ Consultas disponibles
135
138
 
@@ -180,6 +183,46 @@ result.vat?.forEach(v => {
180
183
  });
181
184
  ```
182
185
 
186
+ ### Factura C con Parámetros Opcionales (Ej: Condición IVA Receptor - RG 5616)
187
+
188
+ AFIP requiere mediante la RG 5616 incluir la "Condición frente al IVA del receptor" en ciertas Facturas C, lo cual se envía a través del campo Opcionales.
189
+
190
+ ```typescript
191
+ const result = await wsfe.issueInvoiceC({
192
+ items: [
193
+ { description: 'Licencia de software', quantity: 1, unitPrice: 15000 },
194
+ ],
195
+ optionals: [
196
+ {
197
+ id: 1010, // ID 1010: Condición IVA Receptor
198
+ value: '2' // 2: Responsable Monotributo
199
+ }
200
+ ]
201
+ });
202
+
203
+ console.log('Factura emitida exitosamente con Opcionales integrados.');
204
+ ```
205
+
206
+ ### Nota de Crédito (Anulando factura previa)
207
+
208
+ ```typescript
209
+ import { InvoiceType } from 'arca-sdk';
210
+
211
+ const result = await wsfe.issueCreditNoteC({
212
+ items: [
213
+ { description: 'Anulación de equipo defectuoso', quantity: 1, unitPrice: 45000 },
214
+ ],
215
+ // ⚠️ Obligatorio en NC/ND: especificar el comprobante original afectado
216
+ associatedInvoices: [{
217
+ type: InvoiceType.FACTURA_C, // La factura que estoy anulando
218
+ pointOfSale: 4,
219
+ invoiceNumber: 15302,
220
+ }],
221
+ });
222
+
223
+ console.log('CAE de anulación:', result.cae);
224
+ ```
225
+
183
226
  ### Consulta de Padrón A13
184
227
 
185
228
  ```typescript
@@ -270,6 +313,9 @@ try {
270
313
  }
271
314
  ```
272
315
 
316
+ ### 🚚 Acerca de los Remitos
317
+ > **¡Atención!** Este SDK implementa nativamente el servicio `WSFE` (Facturación Electrónica). Si tu negocio necesita emitir **Remitos Electrónicos Oficiales** para el traslado físico de mercaderías (Remitos Cárnicos, Azucareros, Harineros, etc.), tené en cuenta que la AFIP exige usar un webservice totalmente distinto llamado `WSREM` o similares. Estos servicios aún no están cubiertos por esta versión del SDK.
318
+
273
319
  ---
274
320
 
275
321
  ## Compatibilidad
@@ -300,7 +346,7 @@ import { InvoiceType, BillingConcept, TaxIdType } from 'arca-sdk';
300
346
  import type { WsaaConfig, WsfeConfig, TaxpayerServiceConfig } from 'arca-sdk';
301
347
 
302
348
  // Tipos de respuesta
303
- import type { CAEResponse, InvoiceDetails, PointOfSale, ServiceStatus } from 'arca-sdk';
349
+ import type { CAEResponse, InvoiceDetails, PointOfSale, ServiceStatus, InvoiceOptional } from 'arca-sdk';
304
350
  import type { TaxpayerResponse, Taxpayer, Address, Activity, TaxRecord } from 'arca-sdk';
305
351
 
306
352
  // Items de factura