Einführung
Verbinden Sie Ihre Systeme mit scango.ch: Produkte, Bestellungen, Lieferanten, Kategorien, Filialen und Identitätsprotokolle über eine REST-API.
Mit der Kunden-API von scango.ch lesen und ändern ERP-, Buchhaltungs- oder Warenwirtschaftssysteme die Daten Ihrer Organisation: Produkte, Bestellungen, Lieferanten, Kategorien, Filialen und Identitätsprotokolle.
Basis-URL
https://dashboard.scango.ch/api/v1
Authentifizierung
Erstellen Sie im Dashboard unter Einstellungen → Organisation → API-Schlüssel einen API-Schlüssel (Admin-Rolle erforderlich) und senden Sie ihn bei jeder Anfrage mit:
Authorization: Bearer <api-key>
| Schlüsseltyp | Erlaubt |
|---|---|
| Lesen | Alle GET-Anfragen |
| Schreiben | Alles, was Lesen erlaubt, und zusätzlich Produkte und Produktbilder, Kategorien, Lieferanten, Filialen und gesperrte Identitäten anlegen, ändern und löschen |
Jedes Authentifizierungs- oder Berechtigungsproblem liefert 403: ein
fehlender, unbekannter oder inaktiver Schlüssel oder ein Lese-Schlüssel bei
einem Schreibzugriff.
Konventionen
- Geldbeträge sind Ganzzahlen in Rappen:
120entspricht CHF 1.20. - Datumsangaben in Query-Parametern sind UTC im ISO-8601-Format mit
Z, z. B.2024-01-01T00:00:00.000Z. Offsets wie+02:00werden abgelehnt. - Request-Bodys sind JSON. Aktualisierungen verwenden
POSTmit einem partiellen Body. - Antworten von Listen sind
{ data, meta }, einzelne Einträge{ data }; Schreibzugriffe liefern{ success: true }(beim Anlegen mit der neuenid). - Löschen von Produkten, Kategorien, Lieferanten und Filialen ist ein
Soft-Delete: Der Eintrag fehlt in Listen,
GETper ID liefert ihn aber weiterhin mitdeleted: true. - Fehler sind JSON:
{ statusCode, message, timestamp, path }. Ungültige Listenfilter liefern{ error: { formErrors, fieldErrors } }.
Paginierung
limit bestimmt die Seitengrösse: Standard 100, höchstens 5000.
| Endpunkt | Paginierung |
|---|---|
| Produkte, Bestellungen, Identitätsprotokolle, gesperrte Identitäten | meta.nextCursor als cursor übergeben, bis nextCursor fehlt |
Produktsuche (q) |
offset, höchstens 250 pro Seite |
| Kategorien, Lieferanten, Filialen | Keine Paginierung: eine Antwort mit bis zu limit Einträgen |
Soft-gelöschte Einträge werden nach dem Lesen herausgefiltert. Eine Seite kann
daher kürzer als limit sein, obwohl weitere Seiten existieren. Verlassen Sie
sich auf nextCursor, nicht auf returned < limit.
Bestellungen
start und end sind Pflicht und inklusive; paymentState ist optional.
Bestellungen kommen neueste zuerst. Gelöschte Bestellungen fehlen, ausser mit
includeDeleted=true.
Es gibt keine Webhooks: Fragen Sie neue Bestellungen regelmässig ab, zum Beispiel alle paar Minuten mit einem Zeitfenster, das sich mit dem vorherigen überschneidet.
Produktbilder
Setzen Sie imageUrl beim Anlegen oder Aktualisieren eines Produkts oder laden
Sie eine Datei mit POST /products/{productId}/image hoch (Multipart-Feld
file, max. 10 MiB). Entfernen mit DELETE /products/{productId}/image.
Nächste Schritte
Schnellstart
Die erste Anfrage in wenigen Minuten.
Produkte
Sortiment auflisten, durchsuchen und pflegen.
Bestellungen
Verkäufe in die Buchhaltung exportieren.
OpenAPI-Spezifikation
Client generieren oder die API in Postman importieren.
Alle Endpunkte im Überblick: API-Referenz.
Fragen? Schreiben Sie an support@scango.ch.