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 ändern
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.3.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.3-py3-none-any.whl (128.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sevdesk-0.2.3.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.3.tar.gz
Algorithm Hash digest
SHA256 4d7cc7ce86fe159a05ce1e816aa1e8852a63cb617496094affc08134d7219e4f
MD5 e6aa65f317017aaa486aa0c2524ff126
BLAKE2b-256 de34ce4e9b317388b58f0c6fffda43dbb662f8757caf0adb3f467b65a229cbe8

See more details on using hashes here.

Provenance

The following attestation bundles were made for sevdesk-0.2.3.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.3-py3-none-any.whl.

File metadata

  • Download URL: sevdesk-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 128.0 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 86406cdb03628da1fb3d21dec8b3c371e81da920ccc750f6c5053f3fb0b00c32
MD5 6fafae96425514a3c6ad44043bf35e07
BLAKE2b-256 fe0a9d9b3d6b85461cc706911258fbf7ef262dc7522a6285d8f9cba9fabc760a

See more details on using hashes here.

Provenance

The following attestation bundles were made for sevdesk-0.2.3-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