Skip to content

hernaninverso/peppol-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eleata-peppol

Python SDK for the eleata Peppol API. Validate EU invoices (Peppol BIS 3, XRechnung, Factur-X, UBL) in 5 lines.

PyPI License: MIT

Install

pip install eleata-peppol

Usage

import os
from eleata_peppol import Client

client = Client(api_key=os.environ["ELEATA_KEY"])

with open("invoice.xml", "rb") as f:
    result = client.validate(
        format="peppol-bis-3",
        xml=f.read(),
    )

if not result.valid:
    raise ValueError(f"Invalid: {result.errors}")
print(f"✓ Valid in {result.duration_ms}ms — {result.report_url}")

Async

from eleata_peppol import AsyncClient

async with AsyncClient(api_key=os.environ["ELEATA_KEY"]) as client:
    result = await client.validate(format="xrechnung-2.x", xml=xml_bytes)

Defaults

  • Timeout: 15 seconds
  • Retries: 3 with exponential backoff
  • Max payload: 5 MB (client-side reject)
  • Base URL: https://api.eleata.io

Batch

job = client.validate_batch(
    format="peppol-bis-3",
    files=[(invoice.id, invoice.xml) for invoice in invoices],
    webhook_url="https://yourapp.com/webhooks/eleata",
)
print(f"Job started: {job.job_id}")

Type hints

Full type annotations. Works with mypy --strict and Pyright.

License

MIT

About

Python SDK for the eleata Peppol API — validate EU invoices in 5 lines.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages