Swiss3DHilfe-Center Zum Kundenportal

API und Webhooks

Mit der Swiss3D API verbinden Sie Ihr ERP- oder Einkaufssystem mit dem Kundenportal: Preise abfragen, bestellen, Status, Sendungen und Rechnungen holen und per Webhook über Ereignisse informiert werden.

Aktualisiert am · Swiss3D-Team

Überblick#

Die API bietet dieselben Funktionen wie das Portal; was über die API entsteht, sehen Sie im Portal und umgekehrt. Sie steht Firmenkunden mit Firmenkonto zur Verfügung, unter Organisation›API.

Ihr SystemERP, EinkaufSwiss3DPOST, signiertAufruf mitAPI-SchlüsselRechte prüfenBereich, IP, LimitAntwort (JSON)mit request_idEreignisz. B. order.shippedWebhook empfangenSignatur prüfen
Aufrufe aus Ihrem System und Benachrichtigungen per Webhook
API-Schlüssel der Firma
API-Bereich mit Basis-URL und Schlüsseln

API-Schlüssel erstellen#

Mit Schlüssel erstellen legen Sie fest, wofür der Schlüssel gilt und was er darf.

API-Schlüssel erstellen
Name, Konto, Gültigkeit, Berechtigungen und IP-Beschränkung
  • Konto: Firma (Standard) oder persönlich, dann nur für Ihre eigenen Bestellungen.
  • Gültigkeit: unbegrenzt oder 30, 90, 180 oder 365 Tage.
  • IP-Beschränkung (optional): bis 20 Adressen oder Netze (CIDR).
  • Bis 25 aktive Schlüssel pro Konto. Zu jedem neuen Schlüssel erhalten Sie eine E-Mail.
Neuer Schlüssel wird einmal angezeigt
Der Schlüssel erscheint nur einmal
WichtigDer Schlüssel wird nur ein einziges Mal angezeigt; Swiss3D kann ihn nicht wiederherstellen. Legen Sie ihn sicher ab. Ist er verloren oder möglicherweise kompromittiert, widerrufen Sie ihn in der Liste und erstellen einen neuen.

Berechtigungen#

BereichUmfang
Konto und AdressenKonto, Firma, Rolle und Adressen (lesen)
DateienModelle, Zeichnungen und Anhänge hoch- und herunterladen
Sofortpreise und OffertenSofortpreise anlegen, Offerten und Anfragen
BestellungenBestellen, Status, Sendungen, Belege, Nachbestellung, Storno-Anfrage
RechnungenRechnungen, Kontoauszug, Belege als PDF (lesen)
Teile und ProjekteTeile-Bibliothek, Revisionen, Projekte
NachrichtenNachrichten zu Bestellungen, Offerten, Teilen und Anfragen
FreigabenBestellfreigaben lesen und erteilen (Administratoren)
WebhooksWebhooks über die API verwalten

Ein Schlüssel kann nie mehr als die Rolle seiner Inhaberin oder seines Inhabers: Besteller vergeben keine Freigaben, Betrachter nur Lesen und Nachrichten. Die Rechte werden bei jedem Aufruf mit der aktuellen Rolle abgeglichen.

Erster Aufruf#

Der Schlüssel gehört in den Header Authorization. Die gültige Basis-URL steht im Portal oben im Bereich API.

# SWISS3D_API = Basis-URL aus dem Portal (Organisation › API)
# Eine Bestellung mit Positionen, Sendungen und Belegen
curl "$SWISS3D_API/orders/1211090" \
  -H "Authorization: Bearer s3_live_…"
{
  "object": "order",
  "number": "1211090",
  "status": "delivered",
  "references": { "po_number": "PO-2026-0418", "cost_center": null },
  "sub_orders": [ { "number": "1211090-1", "status": "delivered" }, … ],
  "items": [ { "name": "Halterung_Sensor.stl", "process": "SLS", "quantity": 10, "unit_price": 76.34 }, … ],
  "totals": { "subtotal": 2065.18, "shipping": 7, "tax": 167.85, "total": 2240.02 }
}

Alle Endpunkte mit Beispielen in curl, Node.js und Python stehen im Reiter Dokumentation.

API-Dokumentation im Portal
Leitfaden und API-Referenz im Portal

Bestellen über die API#

Der Ablauf: Datei hochladen (POST /v1/files, bis 20 MB direkt, sonst bis 1 GB über eine Upload-URL), Sofortpreis anlegen, dann POST /v1/orders.

  • Bestellt wird auf Rechnung, mit Lieferung in die Schweiz oder nach Liechtenstein.
  • Idempotency-Key ist bei Bestellungen Pflicht, etwa Ihre PO-Nummer. Ein wiederholter Aufruf liefert dieselbe Bestellung, nie eine zweite (24 Stunden lang).
  • "dry_run": true prüft Preis, Lieferung und Pflichtangaben, ohne zu bestellen.
  • expected_subtotal sichert den Preis, den Ihr System bestätigt hat; bei Abweichung kommt 409 price_changed.
  • Über der Freigabeschwelle kommt 409 approval_required; mit "request_approval": true entsteht stattdessen eine Freigabeanfrage.

Webhooks#

Webhooks melden Ereignisse sofort an Ihr System. Unter Webhooks › Endpunkt hinzufügen geben Sie eine https://-Adresse an, die aus dem Internet erreichbar ist, und wählen die Ereignisse.

Webhook einrichten
Webhook-Endpunkt mit Ereignissen
GruppeEreignisse
Bestellungenorder.created, order.status_changed, order.ready_for_pickup, order.shipped, order.delivered, order.cancelled
Rechnungeninvoice.created, invoice.paid
Kommunikationmessage.created, problem.resolved
Freigabenapproval.requested, approval.approved, approval.rejected, approval.cancelled
Teilepart.released

Jede Zustellung trägt den Header Swiss3D-Signature mit Zeitstempel und HMAC-SHA256-Signatur über Zeitstempel und Inhalt. Prüfen Sie die Signatur mit dem Signatur-Geheimnis, verwerfen Sie Zustellungen älter als 5 Minuten und antworten Sie innert 10 Sekunden mit 2xx.

Swiss3D-Signature: t=1793967180,v1=5257a869e7ecebeda32affa62cdca3fa51cad7e77a0e56ff536d0ce8e108d8bd
# gültig, wenn HMAC-SHA256(geheimnis, "<t>.<Rumpf>") = v1

Fehlgeschlagene Zustellungen wiederholt Swiss3D bis zu acht Mal über etwa zwei Tage. Ein Ereignis kann deshalb mehrfach ankommen; verarbeiten Sie jede Ereignis-ID nur einmal. Test senden prüft Ihren Endpunkt jederzeit.

Protokoll#

API-Protokoll
Alle Aufrufe der letzten 30 Tage

Filtern Sie nach Schlüssel oder nach Fehler. Eine Zeile zeigt Request-ID, IP-Adresse und Fehlercode.

Grenzen und Fehler#

RegelWert
Aufrufe pro Minute und Schlüssel600; für Preise, Uploads und Bestellungen 60
Listenpage und limit (25, 50 oder 100)
BeträgeCHF. Positionen exkl. MWST, Totale inkl. Versand und MWST
Download-Links5 Minuten gültig
StatusBedeutung
400Eingabe ungültig, das Feld steht in field
401Schlüssel fehlt, ungültig, abgelaufen oder widerrufen
402Kauf auf Rechnung nicht möglich
403Berechtigung oder Rolle reicht nicht
404Nicht gefunden
409Konflikt, etwa geänderter Preis oder Freigabe nötig
429Zu viele Aufrufe; Retry-After nennt die Wartezeit

Fehler enthalten immer eine request_id. Geben Sie sie an, wenn Sie Swiss3D zu einem Fehler kontaktieren.

Häufige Fragen#

Wer kann die Swiss3D API nutzen?#

Firmenkunden mit einem Firmenkonto. Die Schlüssel verwalten Sie im Portal unter Organisation › API.

Wie verhindere ich doppelte Bestellungen über die API?#

Mit einem Idempotency-Key, etwa Ihrer PO-Nummer. Sendet Ihr System denselben Aufruf erneut, liefert die API innert 24 Stunden dieselbe Bestellung zurück.

Wie prüfe ich, ob ein Webhook wirklich von Swiss3D kommt?#

Über den Header Swiss3D-Signature: Er enthält eine HMAC-SHA256-Signatur über Zeitstempel und Inhalt, die Sie mit Ihrem Signatur-Geheimnis nachrechnen.