• France
état des services
Back Office Marchand
assistance
FAQContacter le support
Video tutorials
Rechercher
Catégories
Tags
Français
Français
Anglais
Accueil
Cas d'usage
Créer un paiement
Créer un paiement en plusieurs fois
Proposer un paiement complémentaire
Créer un paiement par alias (token)
Créer un lien de paiement
Créer un abonnement
Gérer vos abonnements
Gérer vos transactions (rembourser,...)
Analyser vos journaux
Docs API
Formulaire embarqué
API REST
Formulaire en redirection
Intégration mobile
Échange de fichiers
Exemples de code
Logos
Push mail
Moyens de paiement
Modules de paiement
Guides
Back Office Marchand
Guides fonctionnels

Créer un ordre de paiement par QR Code

Cas d'utilisation

Le marchand crée un ordre de paiement par QR Code et aussi un lien de paiement. L'envoi du message est réalisée par le marchand.

Requête

Paiement avec un QR code

Exemple de requête
Champs obligatoires :
  • Montant : 100,00 €.
  • Canal de diffusion : URL.

Champs recommandés :

  • Référence de la commande : "myOrderId-1234".
  • QR code : 250 px.
/doc/fr-FR/rest/V4.0/api/kb/authentication.html
https://github.com/lyra/rest-php-examples/blob/master/www/minimalEmbeddedForm.php#L9-L44
https://api.systempay.fr/api-payment/V4/Charge/CreatePaymentOrder
  {
    "amount": 10000,
    "currency": "EUR",
    "orderId": "myOrderId-1234",
      "channelOptions": {
          "channelType": "URL",
          "urlOptions": {
          "generateQRCode" : "true",
          "qrCodeSize" : 250
          }
      }
  }
Paramètre Requis Description
channelOptions.urlOptions.generateQRCode Oui Paramètre pour générer un QR Code (Peut prendre la valeur true ou false).
channelOptions.urlOptions.qrCodeSize Non Paramètre permettant de définir la taille du QR Code en pixels (valeur comprise entre 50 et 400). Par défaut, 100.
Pour connaître l'intégralité et la description des champs, consultez le playground : Charge/CreatePaymentOrder (menu à gauche).

Réponse

Exemple de réponse

Récupérez dans l'objet Answer la valeur de channelDetails.urlDetails.qrCode correspondant à une image encodée en base64.

(..)
        "channelDetails": {
            "channelType": "URL",
            (..)
            "urlDetails": {
                "qrCode": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AQAAAACgl2eQAAABZklEQVR4Xu2XUYrDMAxEBTlAjpSr+0g5gMGrp2lK4y79zoAHEWzl/UwlOW6M32oxZyYtQFqAtABpAdJzgB4od4ot06ndDWDdxnlUxAampBfQYm+Z2YaipXFTID32OPDrD2Qey5YAS3Y7I/NfyzkATHv6au9g7wZIvQbnXSbJCCBZvvKVLFftzACYtHYeUYPTNUT3Yj0f6DUsGToESHMg+AFpcDspWX4Wq1i0nx1A7DilTOk6C3e3aQHIZgEyO7fc84FR1xKqQ7/BTzYtAM1+ftmT2YrJ563lPIBWlYK8SjbZNABeWwb/gI+g8dwA2ewcv417b/Hfv8PDARnsdZRRrJPx/2w5CwCbuWRweHKklUcvQBLWdd26f9wtgI6xmpTrfpKN5wewJpltJrLXvdENKGtEvQpazhQYeMy3B4up5XyA64lTSD+Apcr0Opbr760ZEKiSLRj8r/F3AH5oAdICpAVIC5A8gD9G7EWe3QLtLAAAAABJRU5ErkJggg==",
                "_type": "V4/URLDetails"
            },
        }

Insérez cette donnée dans une balise img.

<div>
   <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AQAAAACgl2eQAAABZklEQVR4Xu2XUYrDMAxEBTlAjpSr+0g5gMGrp2lK4y79zoAHEWzl/UwlOW6M32oxZyYtQFqAtABpAdJzgB4od4ot06ndDWDdxnlUxAampBfQYm+Z2YaipXFTID32OPDrD2Qey5YAS3Y7I/NfyzkATHv6au9g7wZIvQbnXSbJCCBZvvKVLFftzACYtHYeUYPTNUT3Yj0f6DUsGToESHMg+AFpcDspWX4Wq1i0nx1A7DilTOk6C3e3aQHIZgEyO7fc84FR1xKqQ7/BTzYtAM1+ftmT2YrJ563lPIBWlYK8SjbZNABeWwb/gI+g8dwA2ewcv417b/Hfv8PDARnsdZRRrJPx/2w5CwCbuWRweHKklUcvQBLWdd26f9wtgI6xmpTrfpKN5wewJpltJrLXvdENKGtEvQpazhQYeMy3B4up5XyA64lTSD+Apcr0Opbr760ZEKiSLRj8r/F3AH5oAdICpAVIC5A8gD9G7EWe3QLtLAAAAABJRU5ErkJggg==" alt="QR Code">
</div>

Le marchand peut aussi envoyer un lien de paiement grâce au champ paymentURL de l'objet Answer.

Retrouvez la description et l'intégralité des autres champs dans notre playground : PaymentOrder


Gestion des erreurs

Tableau des erreurs
Code Description
INT_009 Le format du champ amount est invalide ou le champ n'est pas transmis.
INT_010 Le format du champ currency est invalide ou le champ n'est pas transmis.
INT_050 Le paramètre strongAuthentication est invalide.
INT_856 Le paramètre locale est invalide.
INT_858 Le paramètre taxRate est invalide.
INT_869 Le paramètre taxAmount est invalide.
INT_936 Le paramètre channelOptions.urlOptions.qrCodeSize est invalide. Valeur comprise entre 50 et 400.
PSP_519 Devise inconnue.
PSP_606 Devise non supportée par le contrat.
PSP_1007 La date d'expiration de l'ordre de paiement ne peut etre antérieure à la date courante ni excédée 90 jours.
PSP_1015 Aucun formulaire de collecte de données pour cette boutique.
PSP_1018 Le formulaire de collecte de données ne peut être utilisé pour la devise demandée.

Analyse du résultat du paiement

Pour connaître le résultat du paiement, implémentez l’URL de notification à la fin du paiement (également appelée IPN).

L'utilisation du champ ipnTargetUrl est déconseillée.

  1. Renseignez uniquement l'URL de notification dans la section API REST (TEST ou PRODUCTION) : Procédure.
  2. Analysez l'IPN : Procédure.
© 2025 Tous droits réservés à SystempayMentions légales
25.18-1.11