Skip to main content

Ecosistema completo de Facturación Electrónica Perú (SUNAT) — meta-paquete

Project description

xfep

Meta-paquete que instala el ecosistema completo de Facturación Electrónica Perú (SUNAT UBL 2.1).

Instalación

pip install xfep

Esto instala automáticamente todos los paquetes del ecosistema:

Paquete Descripción
xfep-models Modelos de datos Pydantic v2
xfep-xml Generación de XML UBL 2.1
xfep-sign Firma digital XMLDSig
xfep-ws Cliente SOAP/REST para SUNAT
xfep-parser Parseo de respuestas CDR
xfep-consulta Consulta de CPE (API SUNAT)
xfep-lookup Consulta RUC/DNI
xfep-gre Guías de Remisión Electrónica
xfep-pdf Generación de PDF

Uso rápido

from xfep.models import Invoice, Client, Detalle, Company
from xfep.xml import XmlBuilder
from xfep.sign import Certificate, XmlSigner
from xfep.ws import SunatSoap
from xfep.parser import parse_cdr

# 1. Definir empresa y documento
company = Company(
    ruc="20123456789",
    razon_social="MI EMPRESA S.A.C.",
    direccion="Av. Principal 123",
    ubigeo="150101", distrito="Lima",
    provincia="Lima", departamento="Lima",
    usuario_sol="MODDATOS", clave_sol="MODDATOS",
)

invoice = Invoice(
    company_id=1, branch_id=1, serie="F001",
    fecha_emision="2026-02-10", moneda="PEN",
    tipo_operacion="0101", forma_pago_tipo="Contado",
    client=Client(
        tipo_documento="6",
        numero_documento="20987654321",
        razon_social="CLIENTE S.A.C.",
    ),
    detalles=[
        Detalle(
            descripcion="Servicio de consultoría",
            unidad="ZZ", cantidad=1,
            mto_precio_unitario=5900,
            porcentaje_igv=18, tip_afe_igv="10",
        )
    ],
)

# 2. Generar XML
xml_bytes = XmlBuilder().build(invoice, company)

# 3. Firmar
cert = Certificate.from_file("empresa.p12", "password")
signed_xml = XmlSigner.sign(xml_bytes, cert)

# 4. Enviar a SUNAT
async with SunatSoap(company.ruc, company.usuario_sol, company.clave_sol) as ws:
    response = await ws.send_bill(signed_xml, f"{company.ruc}-01-F001-1")

# 5. Parsear CDR
if response.cdr_bytes:
    cdr = parse_cdr(response.cdr_bytes)
    print(f"Estado: {cdr.status}")  # ACEPTADO

Paquetes individuales

Si solo necesitás un componente específico:

pip install xfep-models   # Solo modelos
pip install xfep-xml      # Solo generación XML
pip install xfep-lookup   # Solo consulta RUC/DNI

Stack

  • Python >= 3.13
  • Pydantic v2 (modelos)
  • lxml + Jinja2 (XML)
  • cryptography (firma digital)
  • httpx (HTTP async)
  • WeasyPrint (PDF)

Licencia

Apache License 2.0 — ver LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xfep-0.1.0.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xfep-0.1.0-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file xfep-0.1.0.tar.gz.

File metadata

  • Download URL: xfep-0.1.0.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for xfep-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ab9efeda40a34553cd8d9788c309d49c91b85da3c0ac1c5c4b142006d74484e3
MD5 1f25a277bb75b80e415073def1816464
BLAKE2b-256 e6b99226347c20ef53122c93f35c9543c8faf4398fb263d5949eff6a8c98c276

See more details on using hashes here.

File details

Details for the file xfep-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: xfep-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for xfep-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9e119f7962f22a1fd146bf34b9fd38cac7d362f32542dbeee078ce16719d3d69
MD5 0176087f3dbd8169a2109a9c6ba90a3e
BLAKE2b-256 7dc9013a63fbfe282d0ef467a0e225571fe48443bd020403632d33e05e8d4150

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page