Python

Integra InvoCash con Python

Automatiza la facturación electrónica VeriFactu desde Django, FastAPI o cualquier script Python. Guía paso a paso con ejemplos reales.

Python

Facturación VeriFactu desde tu backend Python

La API REST de InvoCash es compatible con cualquier proyecto Python 3.7+. Con la popular librería requests (o httpx para proyectos async) puedes autenticarte, crear facturas y consultar estados VeriFactu en pocas líneas.

Ideal para backends Django, APIs FastAPI, scripts de automatización o microservicios que necesiten generar facturas electrónicas homologadas sin gestionar la normativa fiscal internamente.

COMPATIBILIDAD
Python
3.73.83.93.103.113.12
Frameworks
DjangoFastAPIFlaskCelery
HTTP
requestshttpxaiohttp
  • VeriFactu incluido sin integración extra.
  • requests disponible por defecto en cualquier entorno.
  • Autenticación JWT o API Key.
  • Sandbox gratuito para pruebas.
Por qué Python + InvoCash

Lo que consigues al integrar

Sin dependencias extra

requests es la librería más popular. Importa y empieza a llamar a la API en segundos.

Django-ready

Con Celery y signals, integra facturación asíncrona sin bloquear tu aplicación.

VeriFactu delegado

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

Escala con tu volumen

Desde scripts puntuales 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 o usa la API Key directamente en el header.

import requests

BASE_URL = "https://{su-tenant}.invo.cash/api"

# Opción 1: JWT (para sesiones de usuario)
auth = requests.post(f"{BASE_URL}/auth/login", json={
    "email":    "usuario@empresa.com",
    "password": "tu_contraseña",
})
token   = auth.json()["access_token"]
headers = {"Authorization": f"Bearer {token}"}

# Opción 2: API Key (recomendado para integraciones automáticas)
headers = {"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.

def crear_factura(headers, customer_id, descripcion, precio, iva=21):
    tax_base   = precio
    tax_amount = round(tax_base * iva / 100, 2)

    factura = {
        "customer_id":                customer_id,
        "verifactu_issuer_territory": "MAINLAND",
        "simplified":                 False,
        "lines": [{
            "description":             descripcion,
            "quantity":                1,
            "unit_price":              precio,
            "tax_base":                tax_base,
            "tax_pctge":               iva,
            "tax_amount":              tax_amount,
            "tax_withholding_pctge":   0,
            "tax_withholding_amount":  0,
            "tax_type":                "IVA",
            "clave_regimen":           "01",
            "qualification_operation": "S1",
            "exempt_operation":        None,
            "total":                   tax_base,
        }],
        "total": round(tax_base + tax_amount, 2),
    }

    r = requests.post(f"{BASE_URL}/invoices", json=factura, headers=headers)
    return r.json()["data"][0]
3

Consultar estado VeriFactu

r = requests.get(f"{BASE_URL}/invoice/{invoice_id}/verifactu", headers=headers)
estado = r.json()
print(estado["verifactu_status"])  # 'validated' | 'pending' | 'error'
4

Descargar PDF y enviar por email

# Descargar PDF
pdf = requests.get(f"{BASE_URL}/invoice/{invoice_id}/downloadPdf", headers=headers)
with open("factura.pdf", "wb") as f:
    f.write(pdf.content)

# Enviar por email al cliente
requests.post(f"{BASE_URL}/invoice/{invoice_id}/communicate/email", headers=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: Django + Celery con facturación automática

Django Signal
Celery Task
API InvoCash
Factura VeriFactu
Email al cliente

Un SaaS B2B en Django registra el pago de una suscripción. Una señal post_save encola una tarea de Celery que llama a la API de InvoCash para crear la factura, validarla con VeriFactu y enviar el PDF por email al cliente — sin bloquear el hilo principal de Django y con reintentos automáticos si falla la llamada.

Contacto

¿Necesitas ayuda con la integración?

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