Druckauftrag erstellen
Einen Druckauftrag senden
POST https://www.expedy.fr/api/v2/printers/{printer_uid}/print
Sendet einen Druckauftrag an den angegebenen Cloud-Thermodrucker.
Basis-URL: https://www.expedy.fr/api/v2
Authentifizierung
Dieser Endpunkt erfordert einen Authorization-Header, der Ihre SID und Ihren TOKEN enthält, getrennt durch einen einzelnen Doppelpunkt.
Authorization: <SID>:<TOKEN>
⚠️ Dies ist kein Bearer-Token. Fügen Sie kein
Bearer- oderBasic-Präfix hinzu — senden Sie den rohen WertSID:TOKEN.
Authorization: 9F3K7Q2WZ1ABCDEF:b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6
Beide Werte finden Sie in der Expedy-Konsole unter API. Anfragen mit fehlendem oder ungültigem SID:TOKEN werden abgelehnt und geben einen Fehler-Umschlag zurück (siehe Fehler).
Alle Anfragen müssen über HTTPS (TLS) erfolgen.
Pfadparameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
printer_uid |
string |
Ja | UID des Zieldruckers, in der Konsole unter Printers zu finden (z. B. WP0RGS1SEDZ). Das Zeichen # nicht mit angeben. Verwenden Sie GET /printers/all, um sie programmatisch abzurufen. |
Anfragekörper
Content-Type: application/json
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
printer_msg |
string |
Ja | Der zu druckende Inhalt, aufgebaut mit den Beleg-Layout-Tags (<C>, <BOLD>, <IMG>, <QR>, <CUT/>, …). Reiner Text, QR-Codes, Bilder oder eine PDF-URL — alles, was der Drucker unterstützt. |
origin |
string |
Nein | Eine frei wählbare Bezeichnung zur Kennzeichnung der Auftragsquelle (eine URI, ein App-Name, eine Abteilung…). Nützlich zum Filtern und Debuggen in Ihren Protokollen. |
Beispielanfrage:
{
"printer_msg": "<C><BOLD>ORDER #1234</BOLD></C>\n<C>Table 7</C>\n--------------------------------\n1 x Burger\n2 x Fries\n<CUT/>",
"origin": "pos-kitchen-01"
}
cURL-Beispiel:
curl -X POST "https://www.expedy.fr/api/v2/printers/WP0RGS1SEDZ/print" \
-H "Authorization: <SID>:<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"printer_msg":"<C><BOLD>Hello</BOLD></C><CUT/>","origin":"my-app"}'
Antwort 200 OK
Der Auftrag wurde vom Expedy Cloud Print Server angenommen und in die Warteschlange gestellt.
ℹ️ Ein
200bestätigt nur den serverseitigen Empfang — nicht, dass der Beleg physisch gedruckt wurde. Das Drucken erfolgt asynchron: Der Server übergibt den Auftrag an das Gerät, sobald es sich das nächste Mal verbindet. Ein200garantiert keine Papierausgabe, da der Drucker zu diesem Zeitpunkt offline, ohne Papier, ausgeschaltet oder über sein Netzwerk/seine SIM nicht erreichbar sein kann. Verwenden Sie die zurückgegebenerequest_uid, um den Auftrag in Ihren eigenen Protokollen und Supportanfragen zu referenzieren.
| Parameter | Typ | Beschreibung |
|---|---|---|
request_uid |
string |
Eindeutige Kennung des angenommenen Druckauftrags (z. B. 1X5ERXL94BYVWHP92DK3MCASUGJ). |
Beispielantwort:
{
"request_uid": "1X5ERXL94BYVWHP92DK3MCASUGJ"
}
Fehler
Jeder Status, der nicht 2xx ist, gibt einen JSON-Umschlag mit einem message-Feld zurück, das das Problem beschreibt:
{
"message": "Invalid printer"
}
| Status | Bedeutung |
|---|---|
401 / 403 |
Fehlende oder ungültige Zugangsdaten (SID / TOKEN). |
422 |
Die Anfrage konnte nicht verarbeitet werden — z. B. eine unbekannte printer_uid oder ein fehlerhafter Körper. |
Lesen Sie immer das message-Feld, anstatt sich allein auf den Statuscode zu verlassen.
Empfohlene Vorgehensweisen
- Idempotenz. Jede angenommene Anfrage erzeugt einen Druck. Der Endpunkt entfernt keine Duplikate. Wenn Sie also nach einem Netzwerkfehler erneut senden, schützen Sie sich auf Ihrer Seite gegen doppeltes Drucken (z. B. indem Sie die
request_uidnachverfolgen oder die Bestellung als gedruckt markieren, sobald ein200eingeht). - Mit und ohne Bilder testen. Manche Druckermodelle lehnen bestimmte Bildtypen ab und lassen den gesamten Auftrag fehlschlagen — vor dem Produktivbetrieb prüfen.
printer_msginnerhalb der Papierbreite halten. 32 Zeichen pro Zeile bei 58 mm, 48 bei 80 mm. Siehe die Layout-Referenz.
Drucker auflisten
So ermitteln Sie die printer_uid-Werte Ihres Kontos:
GET https://www.expedy.fr/api/v2/printers/all
Gibt die mit Ihrem Konto verbundenen Drucker zurück (Name, Papierbreite, UID, Status), unter Verwendung desselben Authorization: <SID>:<TOKEN>-Headers.
SDK & Beispiele
Bevorzugen Sie einen fertigen Client? Verwenden Sie das offizielle Node.js-SDK — es kapselt Authentifizierung, Druckerliste und Druckaufträge: