Schnittstelle · REST/JSON

API-Dokumentation

Mit der Schnittstelle (API) kannst du deinen Shop automatisch verwalten: Artikel anlegen und pflegen, Bestellungen abrufen und bearbeiten, Rechnungen erstellen – zum Beispiel aus deiner Warenwirtschaft, einem eigenen Programm oder einem Automatisierungs-Tool wie Zapier oder Make.

Version 1.0 https://medrioux.com/api/v1 11 Endpunkte Stand 08.11.2026

1 · Überblick

Alle Endpunkte

Alle Anfragen und Antworten nutzen JSON. Die Feldnamen sind deutsch und entsprechen genau dem, was du in der Plattform siehst.

MethodePfadZweck
POST /api/v1/clearing/nachrichten EDI-Datei einliefern
GET /api/v1/websites Eigene Websites auflisten
GET /api/v1/websites/{website_id}/artikel Artikel einer Website auflisten
POST /api/v1/websites/{website_id}/artikel Artikel anlegen
PATCH /api/v1/artikel/{artikel_id} Artikel ändern
DELETE /api/v1/artikel/{artikel_id} Artikel löschen
GET /api/v1/websites/{website_id}/bestellungen Bestellungen auflisten
GET /api/v1/bestellungen/{bestellung_id} Eine Bestellung abrufen
PATCH /api/v1/bestellungen/{bestellung_id} Bestellung bearbeiten
POST /api/v1/bestellungen/{bestellung_id}/rechnung Rechnung aus Bestellung erstellen
GET /api/v1/websites/{website_id}/rechnungen Rechnungen auflisten

2 · Grundlagen

Anmeldung & Schlüssel

Jede Anfrage braucht deinen persönlichen API-Schlüssel im Kopf (Header) der Anfrage:

X-API-Key: dein-schluessel

Deinen Schlüssel erzeugst und verwaltest du in der Plattform unter Menü → Konto → Meine Daten → API-Zugang. Behandle ihn wie ein Passwort: Wer den Schlüssel hat, kann in deinem Namen arbeiten. Bei Verdacht auf Missbrauch einfach einen neuen erzeugen – der alte wird damit sofort ungültig.

Du siehst und bearbeitest über die API ausschließlich deine eigenen Websites und Daten. Erlaubt sind bis zu 1000 Anfragen pro Stunde.

3 · Grundlagen

Fehler & Status-Codes

Fehler kommen immer als JSON mit einer verständlichen Meldung:

{"ok": false, "fehler": "Artikel 123 nicht gefunden"}

Die wichtigsten Status-Codes: 200 (alles gut), 201 (angelegt), 400 (Eingabe fehlerhaft), 401 (Schlüssel fehlt oder ist falsch), 403 (gehört dir nicht), 404 (gibt es nicht), 429 (zu viele Anfragen – kurz warten).

Endpunkte

Clearing Center

EDI-Datei einliefern

POST /api/v1/clearing/nachrichten

Liefert eine EDI-Datei ins Clearing Center ein (Kanal „api“). Die Nachrichtenart wird automatisch erkannt – bei EDIFACT verbindlich aus dem UNH-Segment. Nur für Konten, die als Clearing-Teilnehmer freigeschaltet sind.

Feld / ParameterPflichtBedeutung
datei Pflicht Die Datei als multipart-Feld (XML, CSV, JSON, TXT oder EDIFACT)
typ optional Nachrichtenart vorgeben (PRICAT, DESADV, INVOIC, SLSRPT, INVRPT …)
empfaenger_gln optional GLN des Empfängers; leer = global (bei PRICAT)
curl -X POST https://medrioux.com/api/v1/clearing/nachrichten \
  -H "X-API-Key: dein-schluessel" -F "[email protected]"

Endpunkte

Websites

Eigene Websites auflisten

GET /api/v1/websites

Liefert alle deine Websites mit Shop-Status. Die id brauchst du für alle weiteren Aufrufe.

{"ok": true, "daten": [{"id": 9, "titel": "B&W Haarliebhaber", "slug": "b-w-haarliebhaber-f57612", "domain": "", "shop_aktiv": true, "shop_modus": "shop"}]}

Endpunkte

Artikel

Artikel einer Website auflisten

GET /api/v1/websites/{website_id}/artikel

Alle Artikel, auch unsichtbare.

{"ok": true, "daten": [{"id": 12, "name": "Herrenhaarschnitt", "preis": 24.9, "kategorie": "Herren", "aktiv": true, …}]}

Artikel anlegen

POST /api/v1/websites/{website_id}/artikel

Legt einen neuen Artikel an. Nur name ist Pflicht.

Feld / ParameterPflichtBedeutung
name Pflicht Artikelname
preis optional Zahl in Euro, z. B. 19.9
beschreibung / einheit / kategorie / bild_url optional wie im Objekt Artikel
streichpreis / sku / marke / tags / lagerbestand optional wie im Objekt Artikel
ust_satz / bilder / aktiv / sortierung optional wie im Objekt Artikel; bilder als Liste von Adressen
aktiv optional true/false, Standard true
sortierung optional Zahl, Standard 0
curl -X POST https://medrioux.com/api/v1/websites/9/artikel \
  -H "X-API-Key: dein-schluessel" -H "Content-Type: application/json" \
  -d '{"name": "Haarwachs", "preis": 12.9, "kategorie": "Produkte"}'

Artikel ändern

PATCH /api/v1/artikel/{artikel_id}

Ändert nur die Felder, die du mitschickst – alles andere bleibt.

Feld / ParameterPflichtBedeutung
beliebige Artikel-Felder optional z. B. nur {"preis": 14.5}
{"ok": true, "daten": {"id": 31, "preis": 14.5, …}}

Artikel löschen

DELETE /api/v1/artikel/{artikel_id}

Endgültig – zum bloßen Verstecken lieber PATCH mit {"aktiv": false}.

{"ok": true}

Endpunkte

Bestellungen

Bestellungen auflisten

GET /api/v1/websites/{website_id}/bestellungen

Neueste zuerst. Mit ?status=neu (oder in_arbeit, erledigt, storniert) filterst du.

Feld / ParameterPflichtBedeutung
status optional Filter auf einen Status
curl https://medrioux.com/api/v1/websites/9/bestellungen?status=neu \
  -H "X-API-Key: dein-schluessel"

Eine Bestellung abrufen

GET /api/v1/bestellungen/{bestellung_id}

Alle Details inklusive Positionen.

{"ok": true, "daten": {"id": 4, "positionen": [{"name": "Herrenhaarschnitt", "preis": 24.9, "menge": 2}], …}}

Bestellung bearbeiten

PATCH /api/v1/bestellungen/{bestellung_id}

Status setzen, Zahlungseingang markieren oder die interne Notiz schreiben.

Feld / ParameterPflichtBedeutung
status optional neu, in_arbeit, erledigt oder storniert
bezahlt optional true/false
interne_notiz optional Text, sieht nur ihr
curl -X PATCH https://medrioux.com/api/v1/bestellungen/4 \
  -H "X-API-Key: dein-schluessel" -H "Content-Type: application/json" \
  -d '{"status": "erledigt", "bezahlt": true}'

Endpunkte

Rechnungen

Rechnung aus Bestellung erstellen

POST /api/v1/bestellungen/{bestellung_id}/rechnung

Erstellt die Rechnung an deinen Käufer. Gibt es schon eine, bekommst du die vorhandene zurück (es entsteht nie eine doppelte). Mit hinterlegtem sevDesk-Token wird sie automatisch als Entwurf an dein sevDesk übergeben.

{"ok": true, "daten": {"id": 2, "nummer": "S9-0002", "summe": 49.8, "status": "offen", …}}

Rechnungen auflisten

GET /api/v1/websites/{website_id}/rechnungen

Alle Rechnungen dieser Website, neueste zuerst.

{"ok": true, "daten": [{"id": 2, "nummer": "S9-0002", "status": "offen", …}]}

Referenz

Objekte & Felder

Artikel

FeldTypBedeutung
idZahlEindeutige Nummer (vergibt das System)
website_idZahlZu welcher Website der Artikel gehört
nameTextArtikelname (Pflicht beim Anlegen)
beschreibungTextKurzer Text unter dem Namen
preisZahlPreis in Euro, z. B. 19.9 – 0 bedeutet „auf Anfrage“
einheitTextZusatz vor dem Preis, z. B. „ab“ oder „pro Std.“
kategorieTextFreie Kategorie (alt) – gruppiert Artikel ohne Katalog
katalogTextName des zugeordneten Katalogs (Warengruppe; nur lesbar – Zuordnung über die Oberfläche)
streichpreisZahl„Vorher“-Preis (UVP) – ist er höher als der Preis, zeigt der Shop einen Sale an
skuTextArtikelnummer
markeTextMarke / Hersteller
tagsTextSchlagworte, durch Komma getrennt – werden von der Shop-Suche gefunden
lagerbestandZahlStück auf Lager; leer/null = Bestand wird nicht verfolgt. Bei 0 zeigt der Shop „ausverkauft“, Bestellungen buchen automatisch ab
bild_urlTextBild-Adresse des Hauptbilds (https://…)
bilderListeWeitere Bild-Adressen für die Galerie auf der Artikel-Seite
ust_satzZahlUmsatzsteuersatz in Prozent (19, 7 oder 0) – steuert den USt-Ausweis auf Rechnungen
aktivJa/Neinfalse = im Shop unsichtbar
sortierungZahlKleinere Zahlen stehen weiter oben

Bestellung

FeldTypBedeutung
idZahlBestellnummer
website_idZahlWebsite, auf der bestellt wurde
nameTextName des Käufers
firmaTextFirma des Käufers (optional)
kaeufer_idZahlKundenkonto des Käufers auf der Website (leer bei Gast-Bestellung)
emailTextE-Mail des Käufers
telefonTextTelefon des Käufers
lieferartTextabholung oder lieferung
adresseTextLieferadresse (bei Lieferung)
wunschterminTextWunschtermin des Käufers
nachrichtTextNachricht des Käufers
positionenListeBestellte Artikel: id, name, preis, menge, ust (Steuersatz in %)
summeZahlGesamtsumme in Euro (inklusive Versand, abzüglich Gutschein)
versandZahlBerechnete Versandkosten in Euro
rabattZahlAbgezogener Gutschein-Betrag in Euro
gutschein_codeTextEingelöster Gutschein-Code (leer = keiner)
sendungsnummerTextSendungsnummer – beim Setzen in der Verwaltung geht automatisch die Versand-E-Mail raus
zahlungsartTextabholung, ueberweisung, paypal oder absprache
statusTextneu, in_arbeit, erledigt oder storniert
bezahltJa/NeinZahlungseingang markiert?
interne_notizTextEure interne Notiz – sieht der Käufer nie
erstellt_amTextZeitpunkt der Bestellung (ISO-Format)

Rechnung

FeldTypBedeutung
idZahlInterne Nummer
nummerTextRechnungsnummer, z. B. S9-0001
website_idZahlZugehörige Website
bestellung_idZahlZugehörige Bestellung (falls vorhanden)
kunde_nameTextRechnungsempfänger
summeZahlRechnungsbetrag in Euro
statusTextoffen, bezahlt oder storniert
sevdesk_idTextID des sevDesk-Entwurfs (falls übergeben)
erstellt_amTextRechnungsdatum (ISO-Format)

Fragen zur Schnittstelle?

Wir helfen beim Einrichten – auch direkt mit deinem Entwickler oder Dienstleister.