Java

Integra InvoCash con Java

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.

Java

Facturación VeriFactu en el ecosistema Java

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.

COMPATIBILIDAD
Java
11172123
Frameworks
Spring BootQuarkusMicronautJakarta EE
HTTP
HttpClientOkHttpRestTemplateAsync
  • VeriFactu incluido sin integración extra.
  • HttpClient nativo desde Java 11.
  • Autenticación JWT o API Key.
  • Sandbox gratuito para pruebas.
Por qué Java + InvoCash

Lo que consigues al integrar

Sin dependencias extra

HttpClient viene nativo. Importa y empieza sin paquetes adicionales.

Kafka/Event-driven ready

Con Spring Cloud Stream o Kafka, integra facturación asíncrona sin bloqueos.

VeriFactu delegado

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

Escala con tu volumen

Desde aplicaciones medianas hasta grandes ERPs empresariales con miles de facturas.

Antes de empezar

Requisitos previos

Integración

Guía de integración paso a paso

1

Autenticación

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_key
2

Crear una factura

Calcula 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());
3

Estado VeriFactu y descarga de PDF

// 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.

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: ERP Spring Boot con facturación automática

Pedido pagado
Kafka event
API InvoCash
Factura VeriFactu
Base de datos

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.

Contacto

¿Necesitas ayuda con la integración?

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