Créer une tâche d'impression
Envoyer une tâche d'impression
POST https://www.expedy.fr/api/v2/printers/{printer_uid}/print
Envoie une tâche d'impression vers l'imprimante thermique cloud désignée.
URL de base : https://www.expedy.fr/api/v2
Authentification
Ce endpoint nécessite un en-tête Authorization contenant votre SID et votre TOKEN, séparés par un seul deux-points.
Authorization: <SID>:<TOKEN>
⚠️ Ce n'est pas un jeton Bearer. N'ajoutez pas de préfixe
BearerniBasic— envoyez la valeur bruteSID:TOKEN.
Authorization: 9F3K7Q2WZ1ABCDEF:b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6
Les deux valeurs sont disponibles dans la console Expedy, rubrique API. Les requêtes dont le SID:TOKEN est absent ou invalide sont rejetées et renvoient une enveloppe d'erreur (voir Erreurs).
Toutes les requêtes doivent être effectuées en HTTPS (TLS).
Paramètres de chemin
| Paramètre | Type | Requis | Description |
|---|---|---|---|
printer_uid |
string |
Oui | UID de l'imprimante cible, visible dans la console sous Printers (ex. WP0RGS1SEDZ). N'incluez pas le symbole #. Utilisez GET /printers/all pour le récupérer par programmation. |
Corps de la requête
Content-Type : application/json
| Paramètre | Type | Requis | Description |
|---|---|---|---|
printer_msg |
string |
Oui | Le contenu à imprimer, construit avec les balises de mise en page du ticket (<C>, <BOLD>, <IMG>, <QR>, <CUT/>, …). Texte brut, QR codes, images ou URL d'un PDF — tout ce que l'imprimante prend en charge. |
origin |
string |
Non | Une étiquette libre pour marquer la source de la tâche (un URI, un nom d'application, un service…). Utile pour filtrer et déboguer dans vos journaux. |
Exemple de requête :
{
"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"
}
Exemple cURL :
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"}'
Réponse 200 OK
La tâche a été acceptée et mise en file d'attente par le serveur d'impression cloud Expedy.
ℹ️ Un
200confirme uniquement la réception côté serveur — pas que le ticket a été physiquement imprimé. L'impression est asynchrone : le serveur transmet la tâche à l'appareil lors de sa prochaine connexion. Un200ne garantit pas la sortie papier, car l'imprimante peut être hors ligne, à court de papier, éteinte ou injoignable sur son réseau/sa SIM à cet instant. Utilisez lerequest_uidrenvoyé pour référencer la tâche dans vos propres journaux et demandes d'assistance.
| Paramètre | Type | Description |
|---|---|---|
request_uid |
string |
Identifiant unique de la tâche d'impression acceptée (ex. 1X5ERXL94BYVWHP92DK3MCASUGJ). |
Exemple de réponse :
{
"request_uid": "1X5ERXL94BYVWHP92DK3MCASUGJ"
}
Erreurs
Tout statut non 2xx renvoie une enveloppe JSON avec un champ message décrivant le problème :
{
"message": "Invalid printer"
}
| Statut | Signification |
|---|---|
401 / 403 |
Identifiants manquants ou invalides (SID / TOKEN). |
422 |
La requête n'a pas pu être traitée — par ex. un printer_uid inconnu ou un corps mal formé. |
Lisez toujours le champ message plutôt que de vous fier au seul code de statut.
Bonnes pratiques
- Idempotence. Chaque requête acceptée produit une impression. Le endpoint ne dédoublonne pas, donc si vous réessayez après une erreur réseau, protégez-vous contre la double impression de votre côté (par ex. en suivant le
request_uid, ou en marquant la commande comme imprimée dès réception d'un200). - Testez avec et sans images. Certains modèles d'imprimante rejettent certains types d'images et peuvent faire échouer toute la tâche — validez avant la mise en production.
- Gardez
printer_msgdans la largeur du papier. 32 caractères par ligne en 58 mm, 48 en 80 mm. Voir la référence de mise en page.
Lister les imprimantes
Pour découvrir les valeurs printer_uid de votre compte :
GET https://www.expedy.fr/api/v2/printers/all
Renvoie les imprimantes rattachées à votre compte (nom, largeur du papier, UID, statut), à l'aide du même en-tête Authorization: <SID>:<TOKEN>.
SDK & exemples
Vous préférez un client prêt à l'emploi ? Utilisez le SDK officiel Node.js — il encapsule l'authentification, la liste des imprimantes et les tâches d'impression :