# Facturación Electrónica
Los métodos de este Web Service se encuentran disponibles en afip.electronicBillingService
La especificación de este Web Service se encuentra disponible aquí (opens new window)
Nota:
Hablaremos de comprobante indistintamente si es una factura, nota de crédito, etc
# Indice
- Facturación Electrónica
- Indice
- Obtener número del último comprobante creado
- Crear y asignar CAE a un comprobante
- Crear y asignar CAE a siguiente comprobante
- Obtener información de un comprobante
- Obtener puntos de venta disponibles
- Obtener tipos de comprobantes disponibles
- Obtener tipos de conceptos disponibles
- Obtener tipos de documentos disponibles
- Obtener tipos de alícuotas disponibles
- Obtener tipos de monedas disponibles
- Obtener tipos de opciones disponibles para el comprobante
- Obtener tipos de tributos disponibles
- Obtener estado del servidor
# Obtener número del último comprobante creado
Debemos utilizar el método getLastVoucher con los parámetros punto de venta y tipo de comprobante que queremos consultar.
const lastVoucher = await afip.electronicBillingService.getLastVoucher(1, 6); //Devuelve el número del último comprobante creado para el punto de venta 1 y el tipo de comprobante 6 (Factura B)
Para mas información acerca de este método ver el item 4.15 de la especificación del Web service (opens new window)
# Crear y asignar CAE a un comprobante
Debemos utilizar el método createVoucher pasándole como parámetro un Objeto con los detalles del comprobante y si queremos tener la respuesta completa enviada por el WS debemos pasarle como segundo parámetro true, en caso de no enviarle el segundo parámetro nos devolverá como respuesta { CAE : CAE asignado el comprobante, CAEFchVto : Fecha de vencimiento del CAE (yyyy-mm-dd) }.
const date = new Date(Date.now() - new Date().getTimezoneOffset() * 60000)
.toISOString()
.split("T")[0];
let data = {
CantReg: 1, // Cantidad de comprobantes a registrar
PtoVta: 1, // Punto de venta
CbteTipo: 6, // Tipo de comprobante (ver tipos disponibles)
Concepto: 1, // Concepto del Comprobante: (1)Productos, (2)Servicios, (3)Productos y Servicios
DocTipo: 99, // Tipo de documento del comprador (99 consumidor final, ver tipos disponibles)
DocNro: 0, // Número de documento del comprador (0 consumidor final)
CbteDesde: 1, // Número de comprobante o numero del primer comprobante en caso de ser mas de uno
CbteHasta: 1, // Número de comprobante o numero del último comprobante en caso de ser mas de uno
CbteFch: parseInt(date.replace(/-/g, "")), // (Opcional) Fecha del comprobante (yyyymmdd) o fecha actual si es nulo
ImpTotal: 121, // Importe total del comprobante
ImpTotConc: 0, // Importe neto no gravado
ImpNeto: 100, // Importe neto gravado
ImpOpEx: 0, // Importe exento de IVA
ImpIVA: 21, //Importe total de IVA
ImpTrib: 0, //Importe total de tributos
MonId: "PES", //Tipo de moneda usada en el comprobante (ver tipos disponibles)('PES' para pesos argentinos)
MonCotiz: 1, // Cotización de la moneda usada (1 para pesos argentinos)
Iva: [
// (Opcional) Alícuotas asociadas al comprobante
{
Id: 5, // Id del tipo de IVA (5 para 21%)(ver tipos disponibles)
BaseImp: 100, // Base imponible
Importe: 21, // Importe
},
],
};
const res = await afip.electronicBillingService.createVoucher(data);
Este método acepta mas parámetros, pueden ver todos los parámetros disponibles Aqui (opens new window)
Para mas información acerca de este método ver el item 4.1 de la especificación del Web service (opens new window)
# Crear y asignar CAE a siguiente comprobante
Debemos utilizar el método createNextVoucher pasándole como parámetro un Objeto con los detalles del comprobante al igual que el método createVoucher, nos devolverá como respuesta { CAE : CAE asignado al comprobante, CAEFchVto : Fecha de vencimiento del CAE (yyyy-mm-dd), voucher_number : Número asignado al comprobante }.
const res = await afip.electronicBillingService.createNextVoucher(data);
# Obtener información de un comprobante
Con este método podemos obtener toda la información relacionada a un comprobante o simplemente saber si el comprobante existe, debemos ejecutar el método getVoucherInfo pasándole como parámetros el número de comprobante, el punto de venta y el tipo de comprobante, nos devolverá un Objeto con toda la información del comprobante o null si el comprobante no existe.
const voucherInfo = await afip.electronicBillingService.getVoucherInfo(1, 1, 6); //Devuelve la información del comprobante 1 para el punto de venta 1 y el tipo de comprobante 6 (Factura B)
if (voucherInfo === null) {
console.log("El comprobante no existe");
} else {
console.log("Esta es la información del comprobante:");
console.log(voucherInfo);
}
Para mas información acerca de este método ver el item 4.19 de la especificación del Web service (opens new window)
# Obtener puntos de venta disponibles
const salesPoints = await afip.electronicBillingService.getSalesPoints();
# Obtener tipos de comprobantes disponibles
const voucherTypes = await afip.electronicBillingService.getVoucherTypes();
Para mas información acerca de este método ver el item 4.4 de la especificación del Web service (opens new window)
# Obtener tipos de conceptos disponibles
const conceptTypes = await afip.electronicBillingService.getConceptTypes();
Para mas información acerca de este método ver el item 4.5 de la especificación del Web service (opens new window)
# Obtener tipos de documentos disponibles
const documentTypes = await afip.electronicBillingService.getDocumentTypes();
Para mas información acerca de este método ver el item 4.6 de la especificación del Web service (opens new window)
# Obtener tipos de alícuotas disponibles
const aloquotTypes = await afip.electronicBillingService.getAliquotTypes();
Para mas información acerca de este método ver el item 4.7 de la especificación del Web service (opens new window)
# Obtener tipos de monedas disponibles
const currenciesTypes =
await afip.electronicBillingService.getCurrenciesTypes();
Para mas información acerca de este método ver el item 4.8 de la especificación del Web service (opens new window)
# Obtener tipos de opciones disponibles para el comprobante
const optionTypes = await afip.electronicBillingService.getOptionsTypes();
Para mas información acerca de este método ver el item 4.9 de la especificacion del Web service (opens new window)
# Obtener tipos de tributos disponibles
const taxTypes = await afip.electronicBillingService.getTaxTypes();
Para mas información acerca de este método ver el item 4.10 de la especificación del Web service (opens new window)
# Obtener estado del servidor
Para esto utilizaremos el método getServerStatus
const serverStatus = await afip.electronicBillingService.getServerStatus();
console.log("Este es el estado del servidor:");
console.log(serverStatus);