Skip to main content

A Python client for the sevDesk API, automatically generated from the OpenAPI specification

Project description

sevDesk API Client (Inoffiziell)

Python-Client fuer die sevDesk API, generiert aus der OpenAPI-Spezifikation.

Wichtig

  • Keine offizielle sevDesk Library
  • Nutzung auf eigene Gefahr
  • Bei Problemen mit Markenrechten bitte kontaktieren

Installation

pip install sevdesk

Quick Start

from sevdesk import Client

client = Client('your-api-token')

# Kontakt suchen/erstellen
contact = client.contactHelper.find_by_mail('max@example.com')
if not contact:
    contact = client.contactHelper.create(name='Max Mustermann', email='max@example.com')

# Rechnung erstellen
invoice = client.invoiceHelper.new(contact=contact, invoiceNumber='REC-001')
invoice.addPosition('Consulting', quantity=10, price=150.00)
invoice.save(status='100')  # 100=Draft
invoice.render()

Helper (High-Level API)

Helper Beschreibung
contactHelper Kontakte suchen, erstellen, verwalten
invoiceHelper Rechnungen erstellen, finalisieren, stornieren
orderHelper Angebote, Auftragsbestaetigungen, Lieferscheine
creditNoteHelper Gutschriften verwalten
partHelper Artikel/Produkte verwalten
letterHelper Briefe erstellen, PDF rendern
bankHelper Bankkonten, Transaktionen, Kontostand
voucherHelper Belege/Ausgaben verwalten

contactHelper

contact = client.contactHelper.find_by_mail('mail@example.com')
contact = client.contactHelper.find_by_customfield('revitoid', '123')
contact = client.contactHelper.create(name='Firma GmbH', email='mail@example.com')

invoiceHelper

invoice = client.invoiceHelper.new(contact=contact, invoiceNumber='REC-001')
invoice.addPosition('Service', quantity=1, price=100.00, taxRate=19.0)
invoice.save(status='100')
invoice.render()
pdf = invoice.getPDF(download=True)

letterHelper

letter = client.letterHelper.new(
    contact=contact,
    header='Betreff',
    text='<p>HTML-Inhalt</p>'
)
letter.save()
letter.render()
pdf = letter.getPDF()

bankHelper

accounts = client.bankHelper.get_accounts()
transactions = client.bankHelper.get_transactions(account_id=123, start_date='2025-01-01')
balance = client.bankHelper.get_balance(account_id=123)
credits = client.bankHelper.get_credits(account_id=123)
debits = client.bankHelper.get_debits(account_id=123)

voucherHelper

vouchers = client.voucherHelper.list(status='open')
expenses = client.voucherHelper.get_expenses()
totals = client.voucherHelper.calculate_totals(vouchers)
positions = client.voucherHelper.get_positions(voucher_id=123)

orderHelper

# Angebot erstellen
order = client.orderHelper.new(contact=contact, orderNumber='AN-001', orderType='AN')
order.addPosition('Beratung', quantity=10, price=150.00)
order.save()
pdf = order.getPDF()

# Angebote auflisten
estimates = client.orderHelper.get_estimates()
confirmations = client.orderHelper.get_confirmations()

partHelper

# Artikel erstellen
part = client.partHelper.create(name='Beratung', partNumber='CONS-01', price=150.00)

# Artikel suchen
part = client.partHelper.find_by_number('CONS-01')
part = client.partHelper.get_or_create(name='Service', partNumber='SRV-01', price=100.00)

# Alle Artikel
parts = client.partHelper.list()

creditNoteHelper

creditnotes = client.creditNoteHelper.list()
open_cn = client.creditNoteHelper.get_open()
pdf = client.creditNoteHelper.get_pdf(creditnote_id=123)

Low-Level API (Controller)

Direkter Zugriff auf alle API-Endpoints:

contacts = client.contact.getContacts()
invoices = client.invoice.getInvoices()
orders = client.order.getOrders()
vouchers = client.voucher.getVouchers()

Samples

Sample Beschreibung
01_create_invoice.py Rechnung mit Positionen erstellen
02_finalize_invoice.py Rechnung finalisieren und PDF
03_invoice_status.py Rechnungsstatus aendern
04_cancel_invoice.py Rechnung stornieren
05_create_letter.py Brief erstellen und PDF
06_bank_transactions.py Bankkonten und Umsaetze
07_vouchers_expenses.py Belege/Ausgaben verwalten
08_orders_estimates.py Angebote erstellen und verwalten
09_parts_articles.py Artikel/Produkte verwalten
10_creditnotes.py Gutschriften verwalten

Alle Samples nutzen .env fuer den API-Key:

cp .env.example .env
# SEVDESK_API_KEY in .env eintragen
python samples/01_create_invoice.py

Generator

Models und Controller werden aus der OpenAPI-Spec generiert:

# OpenAPI-Spec herunterladen
curl -o openapi.yaml https://api.sevdesk.de/openapi.yaml

# Generator ausfuehren
python -m generator

Patches fuer OpenAPI-Fehler: generator/patches.yaml

Projektstruktur

sevdesk/
  controllers/      # Generierte Controller (Low-Level)
  models/           # Generierte Pydantic Models
  converters/       # Generierte Converter
  helpers/          # High-Level Helper (manuell)
  helpermodels/     # Erweiterte Models (manuell)
  undocumented/     # Nicht-dokumentierte API-Endpoints
    controllers/
    models/
generator/          # Code-Generator
samples/            # Beispiel-Scripte

Lizenz

MIT 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

sevdesk-0.2.2.tar.gz (55.5 kB view details)

Uploaded Source

Built Distribution

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

sevdesk-0.2.2-py3-none-any.whl (127.9 kB view details)

Uploaded Python 3

File details

Details for the file sevdesk-0.2.2.tar.gz.

File metadata

  • Download URL: sevdesk-0.2.2.tar.gz
  • Upload date:
  • Size: 55.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sevdesk-0.2.2.tar.gz
Algorithm Hash digest
SHA256 61e0c53edf8c861b70936b2282d57bce81e1e44413cad808de19f91c0283ea37
MD5 c0c6bfcd01cd598599979a271fd57b69
BLAKE2b-256 3338d8cf08134e2b602bcd7ee3419b9eefe87a1b71d58816b516a5ff3fc9ef68

See more details on using hashes here.

Provenance

The following attestation bundles were made for sevdesk-0.2.2.tar.gz:

Publisher: publish.yml on MaximilianClemens/python-sevdesk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sevdesk-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: sevdesk-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 127.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sevdesk-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8497950b14e2bd26b72d38ed185b34ebf69430d57078447fad02e5e6e0d51fb0
MD5 d71e35cc4f6e0244311cd5d33756780b
BLAKE2b-256 499f933548bb26434096af32960bc65db39f20ccb06d9b17f671c032901445b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for sevdesk-0.2.2-py3-none-any.whl:

Publisher: publish.yml on MaximilianClemens/python-sevdesk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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