Automatiza la facturación electrónica VeriFactu desde Express, NestJS o cualquier proyecto Node. Guía paso a paso con ejemplos reales.
La API REST de InvoCash funciona con el fetch nativo de Node 18+ o con axios. Es completamente asíncrona y se integra de forma natural con el modelo event-driven de Node.js.
Desde microservicios Express hasta APIs NestJS o funciones serverless, InvoCash gestiona la generación, firma y envío a la AEAT de cada factura sin bloquear tu flujo de ejecución.
fetch nativo en Node 18+. No necesitas instalar axios ni librerías externas.
La API es completamente asíncrona. Perfecta para microservicios Express o NestJS.
InvoCash gestiona firma, hashes y envío a la AEAT. Tu código solo crea facturas.
Desde APIs pequeñas hasta miles de facturas diarias. Sin cambios en tu código.
Obtén el Bearer token con POST /api/auth/login. Para servicios backend usa la API Key directamente.
const BASE_URL = 'https://{su-tenant}.invo.cash/api';
async function getToken() {
const res = await fetch(`${BASE_URL}/auth/login`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
email: 'usuario@empresa.com',
password: 'tu_contraseña',
}),
});
const { access_token } = await res.json();
return access_token;
}
// API Key (recomendado para backends):
const headers = { 'X-API-Key': 'tu_api_key', 'Content-Type': 'application/json' };Calcula tax_base, tax_amount y total en el cliente antes de enviar — la API no los calcula.
async function crearFactura(token, customerId, descripcion, precio, iva = 21) {
const taxBase = precio;
const taxAmount = Math.round(taxBase * iva) / 100;
const res = await fetch(`${BASE_URL}/invoices`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${token}`,
},
body: JSON.stringify({
customer_id: customerId,
verifactu_issuer_territory: 'MAINLAND',
simplified: false,
lines: [{
description: descripcion,
quantity: 1,
unit_price: precio,
tax_base: taxBase,
tax_pctge: iva,
tax_amount: taxAmount,
tax_withholding_pctge: 0,
tax_withholding_amount: 0,
tax_type: 'IVA',
clave_regimen: '01',
qualification_operation: 'S1',
exempt_operation: null,
total: taxBase,
}],
total: taxBase + taxAmount,
}),
});
const { data } = await res.json();
return data[0];
}const r = await fetch(`${BASE_URL}/invoice/${invoiceId}/verifactu`, { headers });
const { verifactu_status } = await r.json();
console.log(verifactu_status); // 'validated' | 'pending' | 'error'import { writeFileSync } from 'fs';
// Descargar PDF
const pdf = await fetch(`${BASE_URL}/invoice/${invoiceId}/downloadPdf`, { headers });
writeFileSync('factura.pdf', Buffer.from(await pdf.arrayBuffer()));
// Enviar email al cliente
await fetch(`${BASE_URL}/invoice/${invoiceId}/communicate/email`, {
method: 'POST', headers,
});VeriFactu incluido automáticamente: todas las facturas creadas mediante la API de InvoCash se procesan con el sistema VeriFactu de la AEAT. Cumplimiento de la Ley Antifraude y el RD 1007/2023 sin ningún desarrollo adicional por tu parte.
¿Dudas durante la integración?
Nuestro equipo técnico te da respuesta ágil dentro del horario laboral. No hace falta que seas cliente.
Los endpoints que usarás con más frecuencia en tu integración. La documentación completa está disponible dentro de la plataforma.
| Método | Endpoint | Descripción |
|---|---|---|
| POST | /api/auth/login | Autenticar y obtener token JWT |
| GET | /api/customers | Listar clientes |
| POST | /api/invoices | Crear una o varias facturas |
| GET | /api/invoices | Listar facturas (paginado, con filtros) |
| GET | /api/invoice/{id} | Detalle de una factura |
| PUT | /api/invoice/{id} | Actualizar factura (solo si no está validada) |
| GET | /api/invoice/{id}/verifactu | Estado de validación VeriFactu en la AEAT |
| GET | /api/invoice/{id}/downloadPdf | Descargar el PDF de la factura |
| POST | /api/invoice/{id}/communicate/email | Enviar la factura por email al cliente |
| POST | /api/invoice/{id}/validate | Enviar manualmente a VeriFactu |
Un e-commerce en NestJS. Cuando se completa una orden, se encola la tarea de facturación en Bull (Redis queue). Un worker consume la cola, llama a la API de InvoCash para crear la factura, la valida con VeriFactu y envía el PDF por email — sin bloquear el endpoint de órdenes y con reintentos automáticos si falla.
Nuestro equipo técnico te acompaña en todo el proceso. Sin compromiso.