arca-sdk 1.1.0 → 1.1.2
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 +19 -0
- package/README.md +21 -1
- package/README.pdf +22085 -4
- package/dist/index.cjs +48 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +39 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.js +48 -8
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.cts
CHANGED
|
@@ -216,6 +216,8 @@ interface Buyer {
|
|
|
216
216
|
docType: TaxIdType;
|
|
217
217
|
/** Número de documento (sin guiones) */
|
|
218
218
|
docNumber: string;
|
|
219
|
+
/** Opcional: Condición frente al IVA del receptor (ej: 5 para Consumidor Final, 2 para Monotributo) */
|
|
220
|
+
vatCondition?: number;
|
|
219
221
|
}
|
|
220
222
|
/**
|
|
221
223
|
* Comprobante asociado (Requerido al emitir Notas de Crédito/Débito)
|
|
@@ -232,6 +234,23 @@ interface AssociatedInvoice {
|
|
|
232
234
|
/** Fecha de emisión del comprobante original */
|
|
233
235
|
date?: Date;
|
|
234
236
|
}
|
|
237
|
+
/**
|
|
238
|
+
* Campo opcional de AFIP (ej. Condición IVA Receptor RG 5616)
|
|
239
|
+
*/
|
|
240
|
+
interface InvoiceOptional {
|
|
241
|
+
/** ID del dato opcional (ej. 1010) */
|
|
242
|
+
id: string | number;
|
|
243
|
+
/** Valor del dato opcional */
|
|
244
|
+
value: string;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Fechas de servicio (Obligatorio si concept es 2 o 3)
|
|
248
|
+
*/
|
|
249
|
+
interface ServiceDates {
|
|
250
|
+
startDate: Date;
|
|
251
|
+
endDate: Date;
|
|
252
|
+
dueDate: Date;
|
|
253
|
+
}
|
|
235
254
|
/**
|
|
236
255
|
* Request para emitir comprobante
|
|
237
256
|
*/
|
|
@@ -246,6 +265,8 @@ interface IssueInvoiceRequest {
|
|
|
246
265
|
items?: InvoiceItem[];
|
|
247
266
|
/** Comprobantes asociados (Obligatorio para Nota de Crédito/Débito) */
|
|
248
267
|
associatedInvoices?: AssociatedInvoice[];
|
|
268
|
+
/** Fechas de servicio (Obligatorio si concept es 2 o 3) */
|
|
269
|
+
serviceDates?: ServiceDates;
|
|
249
270
|
/** Monto total (requerido si no hay items) */
|
|
250
271
|
total?: number;
|
|
251
272
|
/** Desglose de IVA (requerido para Factura A/B) */
|
|
@@ -258,6 +279,8 @@ interface IssueInvoiceRequest {
|
|
|
258
279
|
includesVAT?: boolean;
|
|
259
280
|
/** Fecha del comprobante (default: hoy) */
|
|
260
281
|
date?: Date;
|
|
282
|
+
/** Campos opcionales adjuntos (ej: Condición IVA receptor ID 1010) */
|
|
283
|
+
optionals?: InvoiceOptional[];
|
|
261
284
|
}
|
|
262
285
|
/**
|
|
263
286
|
* Respuesta CAE (Código de Autorización Electrónico)
|
|
@@ -320,6 +343,8 @@ interface InvoiceDetails {
|
|
|
320
343
|
caeExpiry: string;
|
|
321
344
|
/** Resultado */
|
|
322
345
|
result: 'A' | 'R';
|
|
346
|
+
/** Campos opcionales adjuntos */
|
|
347
|
+
optionals?: InvoiceOptional[];
|
|
323
348
|
}
|
|
324
349
|
/**
|
|
325
350
|
* Punto de venta habilitado en ARCA
|
|
@@ -394,6 +419,7 @@ declare class WsfeService {
|
|
|
394
419
|
total: number;
|
|
395
420
|
concept?: BillingConcept;
|
|
396
421
|
date?: Date;
|
|
422
|
+
optionals?: InvoiceOptional[];
|
|
397
423
|
}): Promise<CAEResponse>;
|
|
398
424
|
/**
|
|
399
425
|
* Emite un Ticket C con detalle de items.
|
|
@@ -403,6 +429,7 @@ declare class WsfeService {
|
|
|
403
429
|
items: InvoiceItem[];
|
|
404
430
|
concept?: BillingConcept;
|
|
405
431
|
date?: Date;
|
|
432
|
+
optionals?: InvoiceOptional[];
|
|
406
433
|
}): Promise<CAEResponse>;
|
|
407
434
|
/**
|
|
408
435
|
* Emite una Factura A (Responsable Inscripto a Responsable Inscripto, con IVA discriminado).
|
|
@@ -414,6 +441,7 @@ declare class WsfeService {
|
|
|
414
441
|
concept?: BillingConcept;
|
|
415
442
|
date?: Date;
|
|
416
443
|
includesVAT?: boolean;
|
|
444
|
+
optionals?: InvoiceOptional[];
|
|
417
445
|
}): Promise<CAEResponse>;
|
|
418
446
|
/**
|
|
419
447
|
* Emite una Factura B (con IVA discriminado).
|
|
@@ -425,6 +453,7 @@ declare class WsfeService {
|
|
|
425
453
|
concept?: BillingConcept;
|
|
426
454
|
date?: Date;
|
|
427
455
|
includesVAT?: boolean;
|
|
456
|
+
optionals?: InvoiceOptional[];
|
|
428
457
|
}): Promise<CAEResponse>;
|
|
429
458
|
/**
|
|
430
459
|
* Emite una Factura C (consumidor final, sin discriminación de IVA).
|
|
@@ -434,6 +463,7 @@ declare class WsfeService {
|
|
|
434
463
|
concept?: BillingConcept;
|
|
435
464
|
date?: Date;
|
|
436
465
|
buyer?: Buyer;
|
|
466
|
+
optionals?: InvoiceOptional[];
|
|
437
467
|
}): Promise<CAEResponse>;
|
|
438
468
|
/**
|
|
439
469
|
* Emite un Recibo A (con IVA discriminado).
|
|
@@ -444,6 +474,7 @@ declare class WsfeService {
|
|
|
444
474
|
concept?: BillingConcept;
|
|
445
475
|
date?: Date;
|
|
446
476
|
includesVAT?: boolean;
|
|
477
|
+
optionals?: InvoiceOptional[];
|
|
447
478
|
}): Promise<CAEResponse>;
|
|
448
479
|
/**
|
|
449
480
|
* Emite un Recibo B (con IVA discriminado).
|
|
@@ -454,6 +485,7 @@ declare class WsfeService {
|
|
|
454
485
|
concept?: BillingConcept;
|
|
455
486
|
date?: Date;
|
|
456
487
|
includesVAT?: boolean;
|
|
488
|
+
optionals?: InvoiceOptional[];
|
|
457
489
|
}): Promise<CAEResponse>;
|
|
458
490
|
/**
|
|
459
491
|
* Emite un Recibo C (sin discriminación de IVA).
|
|
@@ -463,6 +495,7 @@ declare class WsfeService {
|
|
|
463
495
|
concept?: BillingConcept;
|
|
464
496
|
date?: Date;
|
|
465
497
|
buyer?: Buyer;
|
|
498
|
+
optionals?: InvoiceOptional[];
|
|
466
499
|
}): Promise<CAEResponse>;
|
|
467
500
|
/**
|
|
468
501
|
* Emite una Nota de Crédito A.
|
|
@@ -475,6 +508,7 @@ declare class WsfeService {
|
|
|
475
508
|
concept?: BillingConcept;
|
|
476
509
|
date?: Date;
|
|
477
510
|
includesVAT?: boolean;
|
|
511
|
+
optionals?: InvoiceOptional[];
|
|
478
512
|
}): Promise<CAEResponse>;
|
|
479
513
|
/**
|
|
480
514
|
* Emite una Nota de Crédito B.
|
|
@@ -487,6 +521,7 @@ declare class WsfeService {
|
|
|
487
521
|
concept?: BillingConcept;
|
|
488
522
|
date?: Date;
|
|
489
523
|
includesVAT?: boolean;
|
|
524
|
+
optionals?: InvoiceOptional[];
|
|
490
525
|
}): Promise<CAEResponse>;
|
|
491
526
|
/**
|
|
492
527
|
* Emite una Nota de Crédito C.
|
|
@@ -498,6 +533,7 @@ declare class WsfeService {
|
|
|
498
533
|
concept?: BillingConcept;
|
|
499
534
|
date?: Date;
|
|
500
535
|
buyer?: Buyer;
|
|
536
|
+
optionals?: InvoiceOptional[];
|
|
501
537
|
}): Promise<CAEResponse>;
|
|
502
538
|
/**
|
|
503
539
|
* Emite una Nota de Débito A.
|
|
@@ -510,6 +546,7 @@ declare class WsfeService {
|
|
|
510
546
|
concept?: BillingConcept;
|
|
511
547
|
date?: Date;
|
|
512
548
|
includesVAT?: boolean;
|
|
549
|
+
optionals?: InvoiceOptional[];
|
|
513
550
|
}): Promise<CAEResponse>;
|
|
514
551
|
/**
|
|
515
552
|
* Emite una Nota de Débito B.
|
|
@@ -522,6 +559,7 @@ declare class WsfeService {
|
|
|
522
559
|
concept?: BillingConcept;
|
|
523
560
|
date?: Date;
|
|
524
561
|
includesVAT?: boolean;
|
|
562
|
+
optionals?: InvoiceOptional[];
|
|
525
563
|
}): Promise<CAEResponse>;
|
|
526
564
|
/**
|
|
527
565
|
* Emite una Nota de Débito C.
|
|
@@ -533,6 +571,7 @@ declare class WsfeService {
|
|
|
533
571
|
concept?: BillingConcept;
|
|
534
572
|
date?: Date;
|
|
535
573
|
buyer?: Buyer;
|
|
574
|
+
optionals?: InvoiceOptional[];
|
|
536
575
|
}): Promise<CAEResponse>;
|
|
537
576
|
/**
|
|
538
577
|
* Consulta un comprobante ya emitido (FECompConsultar).
|
package/dist/index.d.ts
CHANGED
|
@@ -216,6 +216,8 @@ interface Buyer {
|
|
|
216
216
|
docType: TaxIdType;
|
|
217
217
|
/** Número de documento (sin guiones) */
|
|
218
218
|
docNumber: string;
|
|
219
|
+
/** Opcional: Condición frente al IVA del receptor (ej: 5 para Consumidor Final, 2 para Monotributo) */
|
|
220
|
+
vatCondition?: number;
|
|
219
221
|
}
|
|
220
222
|
/**
|
|
221
223
|
* Comprobante asociado (Requerido al emitir Notas de Crédito/Débito)
|
|
@@ -232,6 +234,23 @@ interface AssociatedInvoice {
|
|
|
232
234
|
/** Fecha de emisión del comprobante original */
|
|
233
235
|
date?: Date;
|
|
234
236
|
}
|
|
237
|
+
/**
|
|
238
|
+
* Campo opcional de AFIP (ej. Condición IVA Receptor RG 5616)
|
|
239
|
+
*/
|
|
240
|
+
interface InvoiceOptional {
|
|
241
|
+
/** ID del dato opcional (ej. 1010) */
|
|
242
|
+
id: string | number;
|
|
243
|
+
/** Valor del dato opcional */
|
|
244
|
+
value: string;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Fechas de servicio (Obligatorio si concept es 2 o 3)
|
|
248
|
+
*/
|
|
249
|
+
interface ServiceDates {
|
|
250
|
+
startDate: Date;
|
|
251
|
+
endDate: Date;
|
|
252
|
+
dueDate: Date;
|
|
253
|
+
}
|
|
235
254
|
/**
|
|
236
255
|
* Request para emitir comprobante
|
|
237
256
|
*/
|
|
@@ -246,6 +265,8 @@ interface IssueInvoiceRequest {
|
|
|
246
265
|
items?: InvoiceItem[];
|
|
247
266
|
/** Comprobantes asociados (Obligatorio para Nota de Crédito/Débito) */
|
|
248
267
|
associatedInvoices?: AssociatedInvoice[];
|
|
268
|
+
/** Fechas de servicio (Obligatorio si concept es 2 o 3) */
|
|
269
|
+
serviceDates?: ServiceDates;
|
|
249
270
|
/** Monto total (requerido si no hay items) */
|
|
250
271
|
total?: number;
|
|
251
272
|
/** Desglose de IVA (requerido para Factura A/B) */
|
|
@@ -258,6 +279,8 @@ interface IssueInvoiceRequest {
|
|
|
258
279
|
includesVAT?: boolean;
|
|
259
280
|
/** Fecha del comprobante (default: hoy) */
|
|
260
281
|
date?: Date;
|
|
282
|
+
/** Campos opcionales adjuntos (ej: Condición IVA receptor ID 1010) */
|
|
283
|
+
optionals?: InvoiceOptional[];
|
|
261
284
|
}
|
|
262
285
|
/**
|
|
263
286
|
* Respuesta CAE (Código de Autorización Electrónico)
|
|
@@ -320,6 +343,8 @@ interface InvoiceDetails {
|
|
|
320
343
|
caeExpiry: string;
|
|
321
344
|
/** Resultado */
|
|
322
345
|
result: 'A' | 'R';
|
|
346
|
+
/** Campos opcionales adjuntos */
|
|
347
|
+
optionals?: InvoiceOptional[];
|
|
323
348
|
}
|
|
324
349
|
/**
|
|
325
350
|
* Punto de venta habilitado en ARCA
|
|
@@ -394,6 +419,7 @@ declare class WsfeService {
|
|
|
394
419
|
total: number;
|
|
395
420
|
concept?: BillingConcept;
|
|
396
421
|
date?: Date;
|
|
422
|
+
optionals?: InvoiceOptional[];
|
|
397
423
|
}): Promise<CAEResponse>;
|
|
398
424
|
/**
|
|
399
425
|
* Emite un Ticket C con detalle de items.
|
|
@@ -403,6 +429,7 @@ declare class WsfeService {
|
|
|
403
429
|
items: InvoiceItem[];
|
|
404
430
|
concept?: BillingConcept;
|
|
405
431
|
date?: Date;
|
|
432
|
+
optionals?: InvoiceOptional[];
|
|
406
433
|
}): Promise<CAEResponse>;
|
|
407
434
|
/**
|
|
408
435
|
* Emite una Factura A (Responsable Inscripto a Responsable Inscripto, con IVA discriminado).
|
|
@@ -414,6 +441,7 @@ declare class WsfeService {
|
|
|
414
441
|
concept?: BillingConcept;
|
|
415
442
|
date?: Date;
|
|
416
443
|
includesVAT?: boolean;
|
|
444
|
+
optionals?: InvoiceOptional[];
|
|
417
445
|
}): Promise<CAEResponse>;
|
|
418
446
|
/**
|
|
419
447
|
* Emite una Factura B (con IVA discriminado).
|
|
@@ -425,6 +453,7 @@ declare class WsfeService {
|
|
|
425
453
|
concept?: BillingConcept;
|
|
426
454
|
date?: Date;
|
|
427
455
|
includesVAT?: boolean;
|
|
456
|
+
optionals?: InvoiceOptional[];
|
|
428
457
|
}): Promise<CAEResponse>;
|
|
429
458
|
/**
|
|
430
459
|
* Emite una Factura C (consumidor final, sin discriminación de IVA).
|
|
@@ -434,6 +463,7 @@ declare class WsfeService {
|
|
|
434
463
|
concept?: BillingConcept;
|
|
435
464
|
date?: Date;
|
|
436
465
|
buyer?: Buyer;
|
|
466
|
+
optionals?: InvoiceOptional[];
|
|
437
467
|
}): Promise<CAEResponse>;
|
|
438
468
|
/**
|
|
439
469
|
* Emite un Recibo A (con IVA discriminado).
|
|
@@ -444,6 +474,7 @@ declare class WsfeService {
|
|
|
444
474
|
concept?: BillingConcept;
|
|
445
475
|
date?: Date;
|
|
446
476
|
includesVAT?: boolean;
|
|
477
|
+
optionals?: InvoiceOptional[];
|
|
447
478
|
}): Promise<CAEResponse>;
|
|
448
479
|
/**
|
|
449
480
|
* Emite un Recibo B (con IVA discriminado).
|
|
@@ -454,6 +485,7 @@ declare class WsfeService {
|
|
|
454
485
|
concept?: BillingConcept;
|
|
455
486
|
date?: Date;
|
|
456
487
|
includesVAT?: boolean;
|
|
488
|
+
optionals?: InvoiceOptional[];
|
|
457
489
|
}): Promise<CAEResponse>;
|
|
458
490
|
/**
|
|
459
491
|
* Emite un Recibo C (sin discriminación de IVA).
|
|
@@ -463,6 +495,7 @@ declare class WsfeService {
|
|
|
463
495
|
concept?: BillingConcept;
|
|
464
496
|
date?: Date;
|
|
465
497
|
buyer?: Buyer;
|
|
498
|
+
optionals?: InvoiceOptional[];
|
|
466
499
|
}): Promise<CAEResponse>;
|
|
467
500
|
/**
|
|
468
501
|
* Emite una Nota de Crédito A.
|
|
@@ -475,6 +508,7 @@ declare class WsfeService {
|
|
|
475
508
|
concept?: BillingConcept;
|
|
476
509
|
date?: Date;
|
|
477
510
|
includesVAT?: boolean;
|
|
511
|
+
optionals?: InvoiceOptional[];
|
|
478
512
|
}): Promise<CAEResponse>;
|
|
479
513
|
/**
|
|
480
514
|
* Emite una Nota de Crédito B.
|
|
@@ -487,6 +521,7 @@ declare class WsfeService {
|
|
|
487
521
|
concept?: BillingConcept;
|
|
488
522
|
date?: Date;
|
|
489
523
|
includesVAT?: boolean;
|
|
524
|
+
optionals?: InvoiceOptional[];
|
|
490
525
|
}): Promise<CAEResponse>;
|
|
491
526
|
/**
|
|
492
527
|
* Emite una Nota de Crédito C.
|
|
@@ -498,6 +533,7 @@ declare class WsfeService {
|
|
|
498
533
|
concept?: BillingConcept;
|
|
499
534
|
date?: Date;
|
|
500
535
|
buyer?: Buyer;
|
|
536
|
+
optionals?: InvoiceOptional[];
|
|
501
537
|
}): Promise<CAEResponse>;
|
|
502
538
|
/**
|
|
503
539
|
* Emite una Nota de Débito A.
|
|
@@ -510,6 +546,7 @@ declare class WsfeService {
|
|
|
510
546
|
concept?: BillingConcept;
|
|
511
547
|
date?: Date;
|
|
512
548
|
includesVAT?: boolean;
|
|
549
|
+
optionals?: InvoiceOptional[];
|
|
513
550
|
}): Promise<CAEResponse>;
|
|
514
551
|
/**
|
|
515
552
|
* Emite una Nota de Débito B.
|
|
@@ -522,6 +559,7 @@ declare class WsfeService {
|
|
|
522
559
|
concept?: BillingConcept;
|
|
523
560
|
date?: Date;
|
|
524
561
|
includesVAT?: boolean;
|
|
562
|
+
optionals?: InvoiceOptional[];
|
|
525
563
|
}): Promise<CAEResponse>;
|
|
526
564
|
/**
|
|
527
565
|
* Emite una Nota de Débito C.
|
|
@@ -533,6 +571,7 @@ declare class WsfeService {
|
|
|
533
571
|
concept?: BillingConcept;
|
|
534
572
|
date?: Date;
|
|
535
573
|
buyer?: Buyer;
|
|
574
|
+
optionals?: InvoiceOptional[];
|
|
536
575
|
}): Promise<CAEResponse>;
|
|
537
576
|
/**
|
|
538
577
|
* Consulta un comprobante ya emitido (FECompConsultar).
|
package/dist/index.js
CHANGED
|
@@ -678,7 +678,8 @@ var WsfeService = class _WsfeService {
|
|
|
678
678
|
buyer: {
|
|
679
679
|
docType: 99 /* FINAL_CONSUMER */,
|
|
680
680
|
docNumber: "0"
|
|
681
|
-
}
|
|
681
|
+
},
|
|
682
|
+
optionals: params.optionals
|
|
682
683
|
});
|
|
683
684
|
}
|
|
684
685
|
/**
|
|
@@ -695,7 +696,8 @@ var WsfeService = class _WsfeService {
|
|
|
695
696
|
buyer: {
|
|
696
697
|
docType: 99 /* FINAL_CONSUMER */,
|
|
697
698
|
docNumber: "0"
|
|
698
|
-
}
|
|
699
|
+
},
|
|
700
|
+
optionals: params.optionals
|
|
699
701
|
});
|
|
700
702
|
return { ...cae, items: params.items };
|
|
701
703
|
}
|
|
@@ -847,6 +849,11 @@ var WsfeService = class _WsfeService {
|
|
|
847
849
|
);
|
|
848
850
|
}
|
|
849
851
|
const det = data.ResultGet;
|
|
852
|
+
let optionals;
|
|
853
|
+
if (det.Opcionales && det.Opcionales.Opcional) {
|
|
854
|
+
const optList = Array.isArray(det.Opcionales.Opcional) ? det.Opcionales.Opcional : [det.Opcionales.Opcional];
|
|
855
|
+
optionals = optList.map((o) => ({ id: String(o.Id), value: String(o.Valor) }));
|
|
856
|
+
}
|
|
850
857
|
return {
|
|
851
858
|
invoiceType: Number(det.CbteTipo),
|
|
852
859
|
pointOfSale: Number(det.PtoVta),
|
|
@@ -860,7 +867,8 @@ var WsfeService = class _WsfeService {
|
|
|
860
867
|
vat: Number(det.ImpIVA),
|
|
861
868
|
cae: String(det.CodAutorizacion),
|
|
862
869
|
caeExpiry: String(det.FchVto),
|
|
863
|
-
result: det.Resultado
|
|
870
|
+
result: det.Resultado,
|
|
871
|
+
optionals
|
|
864
872
|
};
|
|
865
873
|
}
|
|
866
874
|
/**
|
|
@@ -933,7 +941,9 @@ var WsfeService = class _WsfeService {
|
|
|
933
941
|
associatedInvoices: params.associatedInvoices,
|
|
934
942
|
date: params.date,
|
|
935
943
|
vatData,
|
|
936
|
-
includesVAT
|
|
944
|
+
includesVAT,
|
|
945
|
+
optionals: params.optionals,
|
|
946
|
+
serviceDates: params.serviceDates
|
|
937
947
|
});
|
|
938
948
|
}
|
|
939
949
|
/**
|
|
@@ -952,7 +962,9 @@ var WsfeService = class _WsfeService {
|
|
|
952
962
|
docNumber: "0"
|
|
953
963
|
},
|
|
954
964
|
items: params.items,
|
|
955
|
-
associatedInvoices: params.associatedInvoices
|
|
965
|
+
associatedInvoices: params.associatedInvoices,
|
|
966
|
+
optionals: params.optionals,
|
|
967
|
+
serviceDates: params.serviceDates
|
|
956
968
|
});
|
|
957
969
|
}
|
|
958
970
|
/**
|
|
@@ -999,10 +1011,12 @@ var WsfeService = class _WsfeService {
|
|
|
999
1011
|
date: request.date || /* @__PURE__ */ new Date(),
|
|
1000
1012
|
buyer: request.buyer,
|
|
1001
1013
|
associatedInvoices: request.associatedInvoices,
|
|
1014
|
+
serviceDates: request.serviceDates,
|
|
1002
1015
|
net,
|
|
1003
1016
|
vat,
|
|
1004
1017
|
total,
|
|
1005
|
-
vatData: request.vatData
|
|
1018
|
+
vatData: request.vatData,
|
|
1019
|
+
optionals: request.optionals
|
|
1006
1020
|
});
|
|
1007
1021
|
const endpoint = getWsfeEndpoint(this.config.environment);
|
|
1008
1022
|
const response = await callArcaApi(endpoint, {
|
|
@@ -1159,6 +1173,31 @@ var WsfeService = class _WsfeService {
|
|
|
1159
1173
|
});
|
|
1160
1174
|
asocXml += "\n </ar:CbtesAsoc>";
|
|
1161
1175
|
}
|
|
1176
|
+
let optXml = "";
|
|
1177
|
+
if (params.optionals && params.optionals.length > 0) {
|
|
1178
|
+
optXml = "<ar:Opcionales>";
|
|
1179
|
+
params.optionals.forEach((opt) => {
|
|
1180
|
+
optXml += `
|
|
1181
|
+
<ar:Opcional>
|
|
1182
|
+
<ar:Id>${opt.id}</ar:Id>
|
|
1183
|
+
<ar:Valor>${opt.value}</ar:Valor>
|
|
1184
|
+
</ar:Opcional>`;
|
|
1185
|
+
});
|
|
1186
|
+
optXml += "\n </ar:Opcionales>";
|
|
1187
|
+
}
|
|
1188
|
+
const condicionIVAReceptorXml = params.buyer?.vatCondition !== void 0 ? `
|
|
1189
|
+
<ar:CondicionIVAReceptorId>${params.buyer.vatCondition}</ar:CondicionIVAReceptorId>` : "";
|
|
1190
|
+
let fechasServicioXml = "";
|
|
1191
|
+
if (params.concept === 2 /* SERVICES */ || params.concept === 3 /* PRODUCTS_AND_SERVICES */) {
|
|
1192
|
+
const defaultDateStr = params.date.toISOString().split("T")[0].replace(/-/g, "");
|
|
1193
|
+
const startDateStr = params.serviceDates?.startDate ? params.serviceDates.startDate.toISOString().split("T")[0].replace(/-/g, "") : defaultDateStr;
|
|
1194
|
+
const endDateStr = params.serviceDates?.endDate ? params.serviceDates.endDate.toISOString().split("T")[0].replace(/-/g, "") : defaultDateStr;
|
|
1195
|
+
const dueDateStr = params.serviceDates?.dueDate ? params.serviceDates.dueDate.toISOString().split("T")[0].replace(/-/g, "") : defaultDateStr;
|
|
1196
|
+
fechasServicioXml = `
|
|
1197
|
+
<ar:FchServDesde>${startDateStr}</ar:FchServDesde>
|
|
1198
|
+
<ar:FchServHasta>${endDateStr}</ar:FchServHasta>
|
|
1199
|
+
<ar:FchVtoPago>${dueDateStr}</ar:FchVtoPago>`;
|
|
1200
|
+
}
|
|
1162
1201
|
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
1163
1202
|
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
|
|
1164
1203
|
xmlns:ar="http://ar.gov.afip.dif.FEV1/">
|
|
@@ -1180,7 +1219,7 @@ var WsfeService = class _WsfeService {
|
|
|
1180
1219
|
<ar:FECAEDetRequest>
|
|
1181
1220
|
<ar:Concepto>${params.concept}</ar:Concepto>
|
|
1182
1221
|
<ar:DocTipo>${params.buyer?.docType || 99}</ar:DocTipo>
|
|
1183
|
-
<ar:DocNro>${params.buyer?.docNumber || 0}</ar:DocNro
|
|
1222
|
+
<ar:DocNro>${params.buyer?.docNumber || 0}</ar:DocNro>${condicionIVAReceptorXml}
|
|
1184
1223
|
<ar:CbteDesde>${params.invoiceNumber}</ar:CbteDesde>
|
|
1185
1224
|
<ar:CbteHasta>${params.invoiceNumber}</ar:CbteHasta>
|
|
1186
1225
|
<ar:CbteFch>${dateStr}</ar:CbteFch>
|
|
@@ -1191,9 +1230,10 @@ var WsfeService = class _WsfeService {
|
|
|
1191
1230
|
<ar:ImpIVA>${params.vat.toFixed(2)}</ar:ImpIVA>
|
|
1192
1231
|
<ar:ImpTrib>0.00</ar:ImpTrib>
|
|
1193
1232
|
<ar:MonId>PES</ar:MonId>
|
|
1194
|
-
<ar:MonCotiz>1</ar:MonCotiz
|
|
1233
|
+
<ar:MonCotiz>1</ar:MonCotiz>${fechasServicioXml}
|
|
1195
1234
|
${asocXml}
|
|
1196
1235
|
${vatXml}
|
|
1236
|
+
${optXml}
|
|
1197
1237
|
</ar:FECAEDetRequest>
|
|
1198
1238
|
</ar:FeDetReq>
|
|
1199
1239
|
</ar:FeCAEReq>
|