Accéder directement au contenu
Créez un compte
ou
connecter-vous
Logo de la documentation Stripe
/
Demander à l'assistant IA
Créez un compte
Connectez-vous
Démarrer
Paiements
Revenus
Plateformes et places de marché
Gestion de fonds
Ressources pour les développeurs

Imprimer du contenu sur un lecteur

Imprimez du contenu sur l'imprimante intégrée d'un lecteur.

Avec Stripe Terminal, vous pouvez imprimer du contenu personnalisé, tel que des reçus, des tickets ou d’autres documents, directement sur l’imprimante intégrée de votre lecteur. Cette fonction n’est disponible que pour le lecteur Verifone V660p, qui est équipé d’une imprimante thermique intégrée capable d’imprimer en noir et blanc.

Génération de contenu imprimé

Votre intégration est responsable de la génération de contenu à imprimer en tant que fichier image. Les images sont le seul format que nous prenons en charge pour l’impression. Une fois que vous disposez d’une image, convertissez-la en représentation d’image native pour votre type d’intégration (par exemple un fichier image pour une intégration pilotée par serveur, ou un Bitmap pour Android).

Instructions relatives au contenu

Pour de meilleurs résultats, nous vous recommandons des images :

  • D’une largeur de 384 pixels maximum
  • En noir et blanc (pas de niveaux de gris ni de couleur)
  • Conçues de manière à ce que la partie la plus fine d’un caractère ou d’une ligne ait une largeur d’au moins 2 pixels, afin de garantir une impression claire et lisible

Remarque

Vous êtes légalement responsable de tout contenu soumis à Stripe pour impression à l’aide de lecteurs, et devez vous assurer que vos reçus sont conformes à la loi applicable. Il vous est interdit d’imprimer des reçus contenant des éléments qui (i) enfreignent les droits d’un tiers, (ii) violent la loi applicable ou (iii) contiennent du contenu répréhensible, offensant, trompeur, inexact ou préjudiciable.

Impression de contenu

Documentation de l'API

  • print_content

Pour imprimer du contenu sur un lecteur, appelez le endpoint print_content. Envoyez un corps multipart/form-data avec votre fichier image PNG ou JPEG. Le fichier téléchargé ne doit pas dépasser 100 Ko.

Command Line
cURL
No results
curl https://files.stripe.com/v1/terminal/readers/tmr_FDOt2wlRZEdpd7/print_content \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -F type=image \ -F "image=@/path/to/a/image.png"

Remarque

Cet endpoint se trouve sur le sous-domaine files.stripe.com, et non api.stripe.com.

Gérer le résultat d'impression

Le endpoint print_content répond avec un objet Lecteur mis à jour lorsque la commande impression est envoyée avec succès au lecteur. Voici une exemple de réponse :

{ "id": "tmr_FDOt2wlRZEdpd7", "object": "terminal.reader", "action": { "failure_code": null, "failure_message": null, "print_content": { "image": { "created_at": 1748971913, "filename": "image.png", "size": 15864, "type": "png" }, "type": "image" }, "status": "in_progress", "type": "print_content" }, "device_sw_version": "", "device_type": "verifone_v660p", "ip_address": "0.0.0.0", "label": "Blue Rabbit", "last_seen_at": 1695166525506, "livemode": false, "location": "tml_FDOtHwxAAdIJOh", "metadata": {}, "serial_number": "452-406-028", "status": "online" }

L’objet action montre qu’une action print_content est in_progress. L’objet print_content contient des informations sur l’image en cours d’impression.

Le endpoint répond immédiatement à une erreur de validation (par exemple, un fichier trop grand ou un format non pris en charge) avec un code d’état 400 et un corps, tel que le suivant :

{ "error": { "message": "The file you uploaded was too large. Please upload a file smaller than 100 KB", "param": "image", "request_log_url": "https://dashboard.stripe.com/...", "type": "invalid_request_error" } }

Événements de webhook

Lorsque l’opération d’impression se termine (avec succès ou avec une erreur), Stripe envoie une requête à votre webhook endpoint.

Stripe envoie deux événements webhook pour notifier votre back end du résultat de la commande d’impression :

  • terminal.reader.action_succeeded: The print command succeeded.
  • terminal.reader.action_failed : La commande d’impression a échoué. Par exemple, l’imprimante a manqué de papier ou s’est bloquée pendant l’impression.

La charge utile de webhook contient un objet évènement objet où data.object est un objet Lecteur mis à jour.

L’événement terminal.reader.action_succeeded

Pour un événement terminal.reader.action_succeeded, l’objet data ressemble à ce qui suit :

{ "object": { "id": "tmr_FDOt2wlRZEdpd7", "object": "terminal.reader", "action": { "failure_code": null, "failure_message": null, "print_content": { "image": { "created_at": 1748971913, "filename": "image.png", "size": 15864, "type": "png" }, "type": "image" }, "status": "succeeded", "type": "print_content" }, "device_deploy_group": "", "device_sw_version": "2.34.0.0", "device_type": "verifone_v660p", "ip_address": "10.244.38.93", "label": "test", "livemode": false, "location": "tml_GEPlmAJnZUoXI6", "metadata": {}, "serial_number": "452-406-028", "software": null, "status": "online" }, "previous_attributes": null }

Le action.status est défini sur succeeded. Le action.failure_code et action.failure_message sont tous deux null dans ce cas.

L’événement terminal.reader.action_failed

Pour un événement terminal.reader.action_failed, l’objet data ressemble à ce qui suit :

{ "object": { "id": "tmr_FDOt2wlRZEdpd7", "object": "terminal.reader", "action": { "failure_code": "reason_out_of_paper", "failure_message": "The printer is out of paper.", "print_content": { "image": { "created_at": 1748971913, "filename": "image.png", "size": 15864, "type": "png" }, "type": "image" }, "status": "failed", "type": "print_content" }, "device_deploy_group": "", "device_sw_version": "2.34.0.0", "device_type": "verifone_v660p", "ip_address": "10.244.35.107", "label": "test", "livemode": false, "location": "tml_GEPlmAJnZUoXI6", "metadata": {}, "serial_number": "452-406-028", "software": null, "status": "online" }, "previous_attributes": null }

Le champ action.status est défini sur failed. Le champ failure_code contient la raison de l’échec, et le champ failure_message contient un message lisible par l’homme décrivant l’échec.

Les valeurs possibles pour le champ code_échec sont :

Description de l’erreurCode d’échec
L’imprimante est en cours d’impression.printer_busy
Le rouleau de papier de l’imprimante est coincé.printer_paperjam
L’imprimante n’a plus de papier.printer_out_of_paper
Le couvercle ou la tête de l’imprimante est ouvert.printer_cover_open
Défaut général d’impression (attrape tout pour toute autre erreur).printer_failure

Si le lecteur ne prend pas en charge l’impression, le failure_code est défini sur printer_not_supported et l’erreur revient immédiatement après l’appel du endpoint print_content. Un évènement terminal.reader.action_failed est envoyé.

Cette page vous a-t-elle été utile ?
OuiNon
  • Besoin d'aide ? Contactez le service Support.
  • Rejoignez notre programme d'accès anticipé.
  • Consultez notre log des modifications.
  • Des questions ? Contactez l'équipe commerciale.
  • LLM ? Lire llms.txt.
  • Propulsé par Markdoc