Skip to content

Facturación Electrónica

El servicio electronicBillingService permite la gestión completa de comprobantes electrónicos (Facturas, Notas de Crédito, Débito, etc.) a través del Web Service de Facturación Electrónica (WSFE).


Crear Comprobante (CAE)

El método principal para generar una factura y obtener el CAE.

Parámetros de createVoucher

ParámetroTipoDescripción
CantRegnumberCantidad de registros (normalmente 1)
PtoVtanumberPunto de venta (1-9999)
CbteTiponumberTipo de comprobante (ver tabla)
ConceptonumberTipo de concepto (ver tabla)
DocTiponumberTipo de documento del receptor (ver tabla)
DocNronumberNro de documento (0 para Consumidor Final)
CbteDesdenumberNúmero de comprobante desde
CbteHastanumberNúmero de comprobante hasta
CbteFchstringFecha en formato YYYYMMDD
ImpTotalnumberImporte total
ImpNetonumberImporte neto gravado
ImpIVAnumberImporte IVA total
ImpTotConcnumberImporte no gravado
ImpOpExnumberImporte operaciones exentas
ImpTribnumberImporte de tributos
MonIdstringMoneda (PES, DOL, etc.)
MonCotiznumberCotización de la moneda
IvaIVA[]Alícuotas de IVA aplicadas
TributosTributo[](opcional) Tributos adicionales
CbtesAsocCbteAsoc[](opcional) Comprobantes asociados (NC/ND)

Tipos de Comprobante (CbteTipo)

CódigoDescripción
1Factura A
2Nota de Débito A
3Nota de Crédito A
6Factura B
7Recibo B
8Nota de Débito B
9Nota de Crédito B
11Factura C
12Recibo C
13Nota de Débito C
14Nota de Crédito C
51Factura M
81Tique Factura A
82Tique Factura B
83Tique
91Remito R
118Tique Factura T
201Factura de Crédito MiPyMEs (FCE) A
206Factura de Crédito MiPyMEs (FCE) B
211Factura de Crédito MiPyMEs (FCE) C

Tipos de Documento (DocTipo)

CódigoDescripción
80CUIT
86CUIL
87DNI
89Libreta Cívica (LC)
90Extranjeros
91Pasaporte
92Documento Mercosur
99Consumidor Final

Conceptos (Concepto)

CódigoDescripción
1Productos
2Servicios
3Productos y Servicios

Códigos de Alícuota IVA (Iva[].Id)

IDTasa
30%
410.5%
521%
627%
75%
82.5%

Respuesta

ts
{
  CAE: string; // Código de Autorización Electrónica
  CAEFchVto: string; // Vencimiento del CAE (YYYYMMDD)
  Resultado: "A" | "R" | "P"; // Aceptado, Rechazado, Parcial
  Reproceso: "S" | "N";
  PtoVta: number;
  CbteTipo: number;
}

Ejemplo Básico

ts
const invoice = await arca.electronicBillingService.createVoucher({
  CantReg: 1,
  PtoVta: 1,
  CbteTipo: 6, // Factura B
  Concepto: 1, // Productos
  DocTipo: 99, // Consumidor Final
  DocNro: 0,
  CbteDesde: 1,
  CbteHasta: 1,
  CbteFch: "20240101", // String en formato YYYYMMDD
  ImpTotal: 121,
  ImpTotConc: 0,
  ImpNeto: 100,
  ImpOpEx: 0,
  ImpIVA: 21,
  ImpTrib: 0,
  MonId: "PES",
  MonCotiz: 1,
  Iva: [
    {
      Id: 5, // 21%
      BaseImp: 100,
      Importe: 21,
    },
  ],
});
Ver respuesta completa
json
{
  "CAE": "74154876254185",
  "CAEFchVto": "20240111",
  "Resultado": "A",
  "Reproceso": "N",
  "PtoVta": 1,
  "CbteTipo": 6
}

Siguiente Comprobante Automático

createNextVoucher combina getLastVoucher + createVoucher en un solo paso. No requiere CbteDesde ni CbteHasta.

ts
const invoice = await arca.electronicBillingService.createNextVoucher({
  CantReg: 1,
  PtoVta: 1,
  CbteTipo: 6,
  Concepto: 1,
  DocTipo: 99,
  DocNro: 0,
  CbteFch: "20240501",
  ImpTotal: 121,
  ImpTotConc: 0,
  ImpNeto: 100,
  ImpOpEx: 0,
  ImpIVA: 21,
  ImpTrib: 0,
  MonId: "PES",
  MonCotiz: 1,
  Iva: [{ Id: 5, BaseImp: 100, Importe: 21 }],
});

Consultar Último Comprobante

Obtiene el número del último comprobante autorizado para un punto de venta y tipo específico.

ts
const lastVoucher = await arca.electronicBillingService.getLastVoucher(1, 6);
console.log(`Último comprobante: ${lastVoucher}`);

Información de Comprobante

Recupera los datos de un comprobante ya emitido.

ts
const voucherInfo = await arca.electronicBillingService.getVoucherInfo(1, 1, 6);
// getVoucherInfo(nroComprobante, puntoVenta, tipoComprobante)

if (voucherInfo) {
  console.log("Datos del comprobante:", voucherInfo);
} else {
  console.log("El comprobante no existe.");
}

Tablas de Referencia

Métodos auxiliares para obtener los códigos y tipos disponibles en ARCA.

ts
const salesPoints = await arca.electronicBillingService.getSalesPoints();
ts
const voucherTypes = await arca.electronicBillingService.getVoucherTypes();
ts
const conceptTypes = await arca.electronicBillingService.getConceptTypes();
ts
const documentTypes = await arca.electronicBillingService.getDocumentTypes();
ts
const aliquotTypes = await arca.electronicBillingService.getAliquotTypes();
ts
const currencies = await arca.electronicBillingService.getCurrenciesTypes();
ts
const taxTypes = await arca.electronicBillingService.getTaxTypes();

Estado del Servidor

Verifica si los servicios de ARCA están operativos.

ts
const status = await arca.electronicBillingService.getServerStatus();
console.log(status);

Made by Rodrigo Alcorta with ❤️