Automatiza la facturación electrónica VeriFactu desde Spring Boot, Jakarta EE o cualquier aplicación Java. Guía paso a paso con ejemplos reales.
La API REST de InvoCash es compatible con el HttpClient nativo de Java 11+ y con clientes populares como OkHttp o RestTemplate de Spring. Usa JSON estándar y autenticación JWT, completamente alineada con los patrones REST habituales en Java empresarial.
Ideal para ERPs y aplicaciones empresariales que necesiten emisión automática de facturas homologadas sin construir la infraestructura VeriFactu desde cero.
HttpClient viene nativo. Importa y empieza sin paquetes adicionales.
Con Spring Cloud Stream o Kafka, integra facturación asíncrona sin bloqueos.
InvoCash gestiona firma, hashes y envío a la AEAT. Tu código solo crea facturas.
Desde aplicaciones medianas hasta grandes ERPs empresariales con miles de facturas.
Llama a POST /api/auth/login con el HttpClient nativo para obtener el Bearer token.
import java.net.http.*;
import java.net.URI;
var client = HttpClient.newHttpClient();
String BASE = "https://{su-tenant}.invo.cash/api";
var loginBody = """
{"email":"usuario@empresa.com","password":"tu_contraseña"}
""";
var loginResp = client.send(
HttpRequest.newBuilder()
.uri(URI.create(BASE + "/auth/login"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(loginBody))
.build(),
HttpResponse.BodyHandlers.ofString());
// Extraer token del JSON (con Jackson o manualmente)
String token = extractToken(loginResp.body());
// Alternativa: usar header X-API-Key: tu_api_keyCalcula tax_base, tax_amount y total antes de enviar — la API no los calcula automáticamente.
double taxBase = 1500.00;
double taxAmount = Math.round(taxBase * 21) / 100.0;
String invoiceJson = """
{
"customer_id": 123,
"verifactu_issuer_territory": "MAINLAND",
"simplified": false,
"lines": [{
"description": "Desarrollo Java",
"quantity": 1,
"unit_price": %s,
"tax_base": %s,
"tax_pctge": 21,
"tax_amount": %s,
"tax_withholding_pctge": 0,
"tax_withholding_amount": 0,
"tax_type": "IVA",
"clave_regimen": "01",
"qualification_operation": "S1",
"exempt_operation": null,
"total": %s
}],
"total": %s
}""".formatted(taxBase, taxBase, taxAmount, taxBase, taxBase + taxAmount);
var resp = client.send(
HttpRequest.newBuilder()
.uri(URI.create(BASE + "/invoices"))
.header("Content-Type", "application/json")
.header("Authorization", "Bearer " + token)
.POST(HttpRequest.BodyPublishers.ofString(invoiceJson))
.build(),
HttpResponse.BodyHandlers.ofString());// Estado VeriFactu
var vf = client.send(
HttpRequest.newBuilder()
.uri(URI.create(BASE + "/invoice/" + invoiceId + "/verifactu"))
.header("Authorization", "Bearer " + token)
.GET().build(),
HttpResponse.BodyHandlers.ofString());
// Descargar PDF
var pdf = client.send(
HttpRequest.newBuilder()
.uri(URI.create(BASE + "/invoice/" + invoiceId + "/downloadPdf"))
.header("Authorization", "Bearer " + token)
.GET().build(),
HttpResponse.BodyHandlers.ofByteArray());
Files.write(Path.of("factura.pdf"), pdf.body());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 ERP en Spring Boot publica un evento de dominio OrderPaid en Kafka. Un microservicio consumer escucha el evento y llama a la API de InvoCash para crear la factura, validarla con VeriFactu y registrar el ID de factura en la base de datos del ERP — completamente desacoplado y sin intervención manual.
Nuestro equipo técnico te acompaña en todo el proceso. Sin compromiso.