Node.js

Integra InvoCash con Node.js

Automatiza la facturación electrónica VeriFactu desde Express, NestJS o cualquier proyecto Node. Guía paso a paso con ejemplos reales.

Node.js

Facturación VeriFactu en tu stack JavaScript

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.

COMPATIBILIDAD
Node.js
14+16+18+20+
Frameworks
ExpressNestJSFastifyNext.js API routes
HTTP
fetch nativoaxiosnode-fetchgotundici
  • VeriFactu incluido sin integración extra.
  • fetch disponible nativamente en Node 18+.
  • Autenticación JWT o API Key.
  • Sandbox gratuito para pruebas.
Por qué Node.js + InvoCash

Lo que consigues al integrar

Sin dependencias extra

fetch nativo en Node 18+. No necesitas instalar axios ni librerías externas.

Event-driven ready

La API es completamente asíncrona. Perfecta para microservicios Express o NestJS.

VeriFactu delegado

InvoCash gestiona firma, hashes y envío a la AEAT. Tu código solo crea facturas.

Escala con tu volumen

Desde APIs pequeñas hasta miles de facturas diarias. Sin cambios en tu código.

Antes de empezar

Requisitos previos

Integración

Guía de integración paso a paso

1

Autenticación

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' };
2

Crear una factura

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];
}
3

Consultar estado VeriFactu

const r = await fetch(`${BASE_URL}/invoice/${invoiceId}/verifactu`, { headers });
const { verifactu_status } = await r.json();
console.log(verifactu_status); // 'validated' | 'pending' | 'error'
4

Descargar PDF y enviar email

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.

Hablar con el equipo técnico
Referencia rápida

Endpoints principales de la API

Los endpoints que usarás con más frecuencia en tu integración. La documentación completa está disponible dentro de la plataforma.

MétodoEndpointDescripción
POST/api/auth/loginAutenticar y obtener token JWT
GET/api/customersListar clientes
POST/api/invoicesCrear una o varias facturas
GET/api/invoicesListar 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}/verifactuEstado de validación VeriFactu en la AEAT
GET/api/invoice/{id}/downloadPdfDescargar el PDF de la factura
POST/api/invoice/{id}/communicate/emailEnviar la factura por email al cliente
POST/api/invoice/{id}/validateEnviar manualmente a VeriFactu
Caso de uso

Ejemplo real: E-commerce con Bull queue y facturación asíncrona

Orden completada
Bull Queue (Redis)
API InvoCash
Factura VeriFactu
Email al cliente

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.

Contacto

¿Necesitas ayuda con la integración?

Nuestro equipo técnico te acompaña en todo el proceso. Sin compromiso.