sevdesk


Namesevdesk JSON
Version 0.1.3 PyPI version JSON
download
home_pageNone
SummaryA Python client for the sevDesk API, automatically generated from the OpenAPI specification
upload_time2025-10-09 22:48:17
maintainerNone
docs_urlNone
authorClaude, ChatGPT, Copilot
requires_python>=3.8
licenseMIT
keywords sevdesk api client accounting
VCS
bugtrack_url
requirements PyYAML jinja2 requests pydantic
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # sevDesk API Client (Inoffiziell)

Ein Python-Client für die sevDesk API, automatisch generiert aus der OpenAPI-Spezifikation. Dies ist notwendig, da sich die sevdesk-Spezifikation mit dem Standard OpenApi-Generator nicht parsen lässt.

## ⚠️ Wichtige Hinweise

- **Dies ist KEINE offizielle sevDesk Library**
- Ich arbeite nicht für sevDesk und bin nicht mit sevDesk verbunden
- **Nutzung auf eigene Gefahr**
- Keine Garantie für Funktionalität oder Vollständigkeit
- Bei Problemen mit Markenrechten oder dem Library-Namen kontaktieren Sie mich bitte
- Falls sich offizielle Vertreter von sevDesk am Namen der Library stören, bin ich bereit, diesen zu übertragen oder die Library unter einem anderen Namen zu veröffentlichen

## Installation

```bash
pip install sevdesk
```

## Anforderungen

- Python 3.8+
- pydantic
- requests
- pyyaml
- jinja2

## Verwendung

### Client initialisieren

```python
from sevdesk import Client

# API Token von sevDesk Dashboard holen
client = Client('your-api-token-here')
```

### Kontakte abrufen

```python
# Alle Kontakte abrufen
contacts = client.contact.getContacts()

for contact in contacts:
    print(f"ID: {contact.id_}")
    print(f"Name: {contact.name or f'{contact.surename} {contact.familyname}'}")
    print(f"Kundennummer: {contact.customerNumber}")
    print(f"Status: {contact.status}")
    print("-" * 40)
```

### Neuen Kontakt erstellen

```python
from sevdesk.models.contact import Contact
from sevdesk.converters.category import Category

# Organisation erstellen
company = Contact(
    name="Acme Corporation GmbH",
    category=Category(id_=3, objectName="Category")
)
new_company = client.contact.createContact(body=company)
print(f"Organisation erstellt mit ID: {new_company.id_}")

# Person erstellen
person = Contact(
    surename="Max",
    familyname="Mustermann",
    gender="m",
    category=Category(id_=3, objectName="Category")
)
new_person = client.contact.createContact(body=person)
print(f"Person erstellt mit ID: {new_person.id_}")
```

### Rechnungen abrufen

```python
# Alle Rechnungen abrufen
invoices = client.invoice.getInvoices()

for invoice in invoices:
    print(f"Rechnungsnummer: {invoice.invoiceNumber}")
    print(f"Datum: {invoice.invoiceDate}")
    print(f"Betrag: {invoice.sumGross} {invoice.currency}")
    print(f"Status: {invoice.status}")
    print("-" * 40)
```

### Angebote abrufen

```python
# Alle Angebote abrufen
orders = client.order.getOrders()

for order in orders:
    print(f"Angebotsnummer: {order.orderNumber}")
    print(f"Datum: {order.orderDate}")
    print(f"Betrag: {order.sumGross} {order.currency}")
    print(f"Status: {order.status}")
    print("-" * 40)
```

### Kontakt aktualisieren

```python
from sevdesk.models.contactupdate import ContactUpdate

# Kontakt aktualisieren
update_data = ContactUpdate(
    name="Neue Firma GmbH"
)
updated = client.contact.updateContact(contactId=123456, body=update_data)
print(f"Kontakt aktualisiert: {updated.name}")
```

### Kontakt löschen

```python
# Kontakt löschen
client.contact.deleteContact(contactId=123456)
print("Kontakt gelöscht")
```

## Verfügbare Controller

Der Client lädt automatisch alle verfügbaren Controller aus der OpenAPI-Spezifikation:

- `client.contact` - Kontaktverwaltung
- `client.invoice` - Rechnungsverwaltung
- `client.order` - Angebotsverwaltung
- `client.voucher` - Belegverwaltung
- `client.part` - Artikelverwaltung
- ... und viele mehr

Alle Endpoints sind als Methoden verfügbar und vollständig typisiert für IDE-Unterstützung.

## Code neu generieren

Falls sich die sevDesk API ändert:

```bash
# Neue openapi.yaml herunterladen
# Dann Generator ausführen:
python -m generator
```

Dies generiert automatisch:
- Models in `sevdeskapi/models/`
- Converter in `sevdeskapi/converters/`
- Controller in `sevdeskapi/controllers/`

Das wird zeitnah über Github Actions abgebildet!

## Lizenz  / Haftungsausschluss

MIT License - Siehe LICENSE Datei


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "sevdesk",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "sevdesk, api, client, accounting",
    "author": "Claude, ChatGPT, Copilot",
    "author_email": "Maximilian Clemens <maximilian.clemens@gamma.red>",
    "download_url": "https://files.pythonhosted.org/packages/a2/b5/4821d8b2742bcfa30a83afe8a9696f60682e19556f6386c499f40fde1656/sevdesk-0.1.3.tar.gz",
    "platform": null,
    "description": "# sevDesk API Client (Inoffiziell)\n\nEin Python-Client f\u00fcr die sevDesk API, automatisch generiert aus der OpenAPI-Spezifikation. Dies ist notwendig, da sich die sevdesk-Spezifikation mit dem Standard OpenApi-Generator nicht parsen l\u00e4sst.\n\n## \u26a0\ufe0f Wichtige Hinweise\n\n- **Dies ist KEINE offizielle sevDesk Library**\n- Ich arbeite nicht f\u00fcr sevDesk und bin nicht mit sevDesk verbunden\n- **Nutzung auf eigene Gefahr**\n- Keine Garantie f\u00fcr Funktionalit\u00e4t oder Vollst\u00e4ndigkeit\n- Bei Problemen mit Markenrechten oder dem Library-Namen kontaktieren Sie mich bitte\n- Falls sich offizielle Vertreter von sevDesk am Namen der Library st\u00f6ren, bin ich bereit, diesen zu \u00fcbertragen oder die Library unter einem anderen Namen zu ver\u00f6ffentlichen\n\n## Installation\n\n```bash\npip install sevdesk\n```\n\n## Anforderungen\n\n- Python 3.8+\n- pydantic\n- requests\n- pyyaml\n- jinja2\n\n## Verwendung\n\n### Client initialisieren\n\n```python\nfrom sevdesk import Client\n\n# API Token von sevDesk Dashboard holen\nclient = Client('your-api-token-here')\n```\n\n### Kontakte abrufen\n\n```python\n# Alle Kontakte abrufen\ncontacts = client.contact.getContacts()\n\nfor contact in contacts:\n    print(f\"ID: {contact.id_}\")\n    print(f\"Name: {contact.name or f'{contact.surename} {contact.familyname}'}\")\n    print(f\"Kundennummer: {contact.customerNumber}\")\n    print(f\"Status: {contact.status}\")\n    print(\"-\" * 40)\n```\n\n### Neuen Kontakt erstellen\n\n```python\nfrom sevdesk.models.contact import Contact\nfrom sevdesk.converters.category import Category\n\n# Organisation erstellen\ncompany = Contact(\n    name=\"Acme Corporation GmbH\",\n    category=Category(id_=3, objectName=\"Category\")\n)\nnew_company = client.contact.createContact(body=company)\nprint(f\"Organisation erstellt mit ID: {new_company.id_}\")\n\n# Person erstellen\nperson = Contact(\n    surename=\"Max\",\n    familyname=\"Mustermann\",\n    gender=\"m\",\n    category=Category(id_=3, objectName=\"Category\")\n)\nnew_person = client.contact.createContact(body=person)\nprint(f\"Person erstellt mit ID: {new_person.id_}\")\n```\n\n### Rechnungen abrufen\n\n```python\n# Alle Rechnungen abrufen\ninvoices = client.invoice.getInvoices()\n\nfor invoice in invoices:\n    print(f\"Rechnungsnummer: {invoice.invoiceNumber}\")\n    print(f\"Datum: {invoice.invoiceDate}\")\n    print(f\"Betrag: {invoice.sumGross} {invoice.currency}\")\n    print(f\"Status: {invoice.status}\")\n    print(\"-\" * 40)\n```\n\n### Angebote abrufen\n\n```python\n# Alle Angebote abrufen\norders = client.order.getOrders()\n\nfor order in orders:\n    print(f\"Angebotsnummer: {order.orderNumber}\")\n    print(f\"Datum: {order.orderDate}\")\n    print(f\"Betrag: {order.sumGross} {order.currency}\")\n    print(f\"Status: {order.status}\")\n    print(\"-\" * 40)\n```\n\n### Kontakt aktualisieren\n\n```python\nfrom sevdesk.models.contactupdate import ContactUpdate\n\n# Kontakt aktualisieren\nupdate_data = ContactUpdate(\n    name=\"Neue Firma GmbH\"\n)\nupdated = client.contact.updateContact(contactId=123456, body=update_data)\nprint(f\"Kontakt aktualisiert: {updated.name}\")\n```\n\n### Kontakt l\u00f6schen\n\n```python\n# Kontakt l\u00f6schen\nclient.contact.deleteContact(contactId=123456)\nprint(\"Kontakt gel\u00f6scht\")\n```\n\n## Verf\u00fcgbare Controller\n\nDer Client l\u00e4dt automatisch alle verf\u00fcgbaren Controller aus der OpenAPI-Spezifikation:\n\n- `client.contact` - Kontaktverwaltung\n- `client.invoice` - Rechnungsverwaltung\n- `client.order` - Angebotsverwaltung\n- `client.voucher` - Belegverwaltung\n- `client.part` - Artikelverwaltung\n- ... und viele mehr\n\nAlle Endpoints sind als Methoden verf\u00fcgbar und vollst\u00e4ndig typisiert f\u00fcr IDE-Unterst\u00fctzung.\n\n## Code neu generieren\n\nFalls sich die sevDesk API \u00e4ndert:\n\n```bash\n# Neue openapi.yaml herunterladen\n# Dann Generator ausf\u00fchren:\npython -m generator\n```\n\nDies generiert automatisch:\n- Models in `sevdeskapi/models/`\n- Converter in `sevdeskapi/converters/`\n- Controller in `sevdeskapi/controllers/`\n\nDas wird zeitnah \u00fcber Github Actions abgebildet!\n\n## Lizenz  / Haftungsausschluss\n\nMIT License - Siehe LICENSE Datei\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A Python client for the sevDesk API, automatically generated from the OpenAPI specification",
    "version": "0.1.3",
    "project_urls": {
        "Homepage": "https://github.com/MaximilianClemens/python-sevdesk",
        "Issues": "https://github.com/MaximilianClemens/python-sevdesk/issues",
        "Repository": "https://github.com/MaximilianClemens/python-sevdesk"
    },
    "split_keywords": [
        "sevdesk",
        " api",
        " client",
        " accounting"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a2c759f72078f5795da56ac132efbafb756d1d68bf9c5a5bf045acc9139c8c35",
                "md5": "8304c1026b54b824cac5fb60e2f2ebca",
                "sha256": "892ef0af6e9b15211c3adc13def9d3add066e1e0ee09e30bb4e7ee72ab5b8ba9"
            },
            "downloads": -1,
            "filename": "sevdesk-0.1.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8304c1026b54b824cac5fb60e2f2ebca",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 70858,
            "upload_time": "2025-10-09T22:48:15",
            "upload_time_iso_8601": "2025-10-09T22:48:15.655553Z",
            "url": "https://files.pythonhosted.org/packages/a2/c7/59f72078f5795da56ac132efbafb756d1d68bf9c5a5bf045acc9139c8c35/sevdesk-0.1.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a2b54821d8b2742bcfa30a83afe8a9696f60682e19556f6386c499f40fde1656",
                "md5": "f00760a733ccec6bd92e6c45c8baac98",
                "sha256": "cfb19bab589060c7d35561057dc5d865e8d46928de5696249d3f492cffc1fdb8"
            },
            "downloads": -1,
            "filename": "sevdesk-0.1.3.tar.gz",
            "has_sig": false,
            "md5_digest": "f00760a733ccec6bd92e6c45c8baac98",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 25595,
            "upload_time": "2025-10-09T22:48:17",
            "upload_time_iso_8601": "2025-10-09T22:48:17.187597Z",
            "url": "https://files.pythonhosted.org/packages/a2/b5/4821d8b2742bcfa30a83afe8a9696f60682e19556f6386c499f40fde1656/sevdesk-0.1.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-09 22:48:17",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "MaximilianClemens",
    "github_project": "python-sevdesk",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "PyYAML",
            "specs": []
        },
        {
            "name": "jinja2",
            "specs": []
        },
        {
            "name": "requests",
            "specs": []
        },
        {
            "name": "pydantic",
            "specs": []
        }
    ],
    "lcname": "sevdesk"
}
        
Elapsed time: 1.20288s