• France
état des services
démonstrations
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 paiement à l'expédition
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
Moyens de paiement
Modules de paiement
Guides
Back Office Marchand
Guides fonctionnels

Questions fréquentes

Comment corriger les erreurs CORS ou "Unable to post message" au moment de payer ?

Lorsque l'acheteur décide de payer, créez un formToken en envoyant une requête vers le Web Service Charge/CreatePayment :

- Toujours depuis **votre serveur marchand**, car les données sensibles sont protégées. - Jamais depuis **votre navigateur**, car vos données sensibles sont vulnérables, comme vos identifiants. Pour sécuriser vos données, nous bloquons la requête et affichons des erreurs **CORS**.

Pour vous aider, voir nos exemples d'intégration en fonction de votre framework JavaScript : Exemples de code.

Donnez un accès à la page de paiement avec **http://** et non avec **file://** depuis un serveur web.

Pour le framework [**ionic**](https://ionicframework.com/) ou **cordova**, dans **config.xml**, déclarez les noms de domaines pouvant être appelés par le client JavaScript :

```html ```

[Plus d'informations.](https://cordova.apache.org/docs/en/latest/guide/appdev/allowlist/index.html)


Comment corriger les erreurs "Same-origin policy" ?

En cas d'erreur, ce type de message s'affiche souvent : "Blocked a frame with origin "[URL Domain]" from accessing a frame with origin "[URL Domain]".

Pour des raisons de sécurité, la `Same-origin policy` a restreint l'accès aux ressources provenant d'origines différentes.

[Plus d'informations.](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy)


Comment configurer les CSP (Content Security Policy)

Ajoutez ces 3 directives pour autoriser le client JavaScript à créer ses IFrames.

Directive CSP Valeurs
connect-src https://static.scelliuspaiement.labanquepostale.fr
frame-src https://static.scelliuspaiement.labanquepostale.fr
script-src https://static.scelliuspaiement.labanquepostale.fr

Exemple d'ajout dans les meta du head de votre page:

<meta
  http-equiv="Content-Security-Policy"
  content="
    connect-src https://static.scelliuspaiement.labanquepostale.fr;
    frame-src https://static.scelliuspaiement.labanquepostale.fr;
    script-src https://static.scelliuspaiement.labanquepostale.fr;"
/>

Plus d'informations.

Si vous utilisez un moteur de détection de fraude externe (comme monitor+, clearsale, ...), ajoutez également :

Directive CSP Valeurs
connect-src https://scelliuspaiement.labanquepostale.fr
frame-src https://scelliuspaiement.labanquepostale.fr
script-src https://scelliuspaiement.labanquepostale.fr

Comment intégrer l'intégrité des sous-ressources (SRI) ?
Vous trouverez des informations sur le contexte et le fonctionnement : lien.

Intégrer le SRI en suivant ces étapes :

  1. Appelez l'URL correspondant à la ressource que vous souhaitez charger sur votre page de paiement :
Librairie JavaScript URL SRI
Formulaire SmartForm (kr-payment-form.min.js) https://static.scelliuspaiement.labanquepostale.fr/static/js/krypton-client/V4.0/version.json
Authentification du payeur (kr-authenticate.umd.js) https://static.scelliuspaiement.labanquepostale.fr/static/js/authenticate-client/V1.0/version.json
  1. Récupérez le hash présent dans la réponse :
  • Dans cet exemple, la valeur du hash correspond à sha384-m2TqTgecvuLe1k+/eCJg3(...)TsYGcJfc5RMWYa/.
{
  "version": "V4.14",
  "build": "87",
  "target": "V4.0",
  "integrity": {
    "kr-payment-form.min.js": "sha384-m2TqTgecvuLe1k+/eCJg3(...)TsYGcJfc5RMWYa/"
  },
  "webservices": "V4"
  1. Intégrez dynamiquement le hash dans le header de votre page. Dans la balise script lors du chargement de notre librairie JS, ajoutez le hash dans l'attribut integrity.

Exemple : Créez une variable sha_384 avec la valeur dynamique du hash.

    <script>
      src="https://static.scelliuspaiement.labanquepostale.fr/static/js/krypton-client/V4.0/stable/kr-payment-form.min.js"
      integrity="sha_384"
      crossorigin="anonymous"
      (...)
      </script>

Vous pouvez utiliser une librairie comme cURL ou une API comme fetch pour réaliser cette intégration.

  • Exemple avec cURL
    1. Appeler l'URL et récupérer le hash dans une variable. Dans cet exemple, le nom de la variable est sha_384.
    <?php
    // create a new cURL resource
    $url = "/version.json";
    
    // Initiate a cURL session.
    $ch = curl_init();  
    // Get page content
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    //Enter the URL and pass it to the variable.
    curl_setopt($ch, CURLOPT_URL, $url);
    //Disable certificate verification if HTTPS
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    
    //Execute the query
    $result = curl_exec($ch);
    
    //Encode in JSON
    $res = json_decode($result, true);
    
    // Get the hash
    $sha_384 = $res["integrity"]["kr-payment-form.min.js"];
    
    //Close the cURL session
     curl_close($ch);
    
    (...)
    ?>
    1. Intégrer la variable (sha_384) dans le HTML dans l'attribut integrity lors du chargement de notre librairie JS.
    <!DOCTYPE html>
    <html>
    
    <head>
      <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      <meta http-equiv="X-UA-Compatible" content="IE=edge" />
      <script src="/stable/kr-payment-form.min.js"
      integrity="<?php echo $sha_384; ?>"
      crossorigin="anonymous"
      (...)
      >
      </script>
      <link rel="stylesheet" href="/ext/neon-reset.min.css">
      <script
      src="/ext/neon.js">
     </script>
      <script type="text/javascript">
      (...)
      </head>
      <body>
      (...)
      </body>
      </html>

Si vous avez une erreur avec le framework Angular (zone.js) ?

Le framework Angular (zone.js) rencontre un problème lors du wrapping des rejets de promesses avec un dysfonctionnement du service `detectChanges`.

Exemple de message d'erreur :

Pour résoudre :

  1. Créez un fichier zone-flags.ts :
    • (window as any)._zone_symbol_DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION = true ;
  2. Importez le fichier dans polyfills.ts avant import 'zone.js'; :
    • import './zone-flags' ;

    Pour vous aider, voir notre exemple d'intégration pour Angular.


Plus d'infos : dans la documentation Angular et la configuration.


Comment accèder à des cas d'utilisation en mode avancé ?
| DESCRIPTION | Article | |------------------------------------------------------------|-----------------------------------------------------------------------------------| | Transmettre les champs en fonction de vos besoins | Cas d'utilisation | | Ajouter des champs de formulaire personnalisés | Champs additionnels | | | Gérer les erreurs du formulaire de paiement | Gestion des erreurs | | Gestion des nouvelles tentatives de paiement (retry) | Gestion du retry | | Paramètres généraux du client JS | Paramètres généraux |

Quelle est la durée de validité du formToken ?

Le formToken est le résultat de la réponse de l'appel Charge/CreatePayment.

Le formToken est valide pendant 15 minutes et non configurable.

Cette durée est :

  • suffisante pour permettre à chaque acheteur de réaliser son paiement
  • fixe : elle n'est pas remise à zéro à chaque action de l'utilisateur
  • non modifiable : elle est fixée par la plateforme de paiement pour répondre à des contraintes techniques.

Comment ajouter des Conditions Générales de Vente (CGV) dans le formulaire embarqué

Conformément à la réglementation RGPD, l'acheteur doit d'abord valider vos Conditions Générales de Vente (CGV) avant de procéder au paiement.

L'affichage et la validation des CGV se font dans le code de votre page de paiement, à l'extérieur du formulaire embarqué.

La gestion des CGV sur votre site internet est hors du périmètre technique de la plateforme de paiement


Comprendre le refus d'un remboursement

La transaction ne peut pas être remboursée.

Trois cas existent  :

  1. Si la carte a expiré de plus de 3 mois, la plateforme de paiement refuse la demande de remboursement avec un code 8 : La date d'expiration du moyen de paiement ne permet pas cette action (champ detailedErrorCode).
  2. Si le réseau supporte le credit online, la plateforme de paiement indique le motif de refus du remboursement, après la demande d'autorisation (champ detailedErrorMessage).
    <p>Pour le réseau <no-translate><b>CB</b></no-translate>, par exemple, si la demande de remboursement se fait sur une carte en opposition, le code et le motif du refus peut être "59 : suspicion de fraude".</p>
  3. Si le réseau ne supporte pas le credit online, la plateforme de paiement n'a pas d'information sur le statut final du remboursement.

    En cas de refus, l'acheteur doit contacter sa banque pour connaître le motif.

Vous devez rembourser votre acheteur par un autre moyen de paiement (chèque,virement ...).


Quelles sont les langues disponibles pour le formulaire embarqué ?

Langue d'affichage du formulaire au format Culture (fr-FR) avec le paramètre kr-language (voir : lien).

Ex :

  • pour le français, "fr-FR";
  • pour le japonais, "ja-JP";
  • pour le chinois, "zh-CN".

Utilisez aussi la méthode KR.setFormConfig (voir : lien)

Langue Codification ISO 639-1 Codification ISO 3166-1 alpha-2
Allemand de DE
Anglais en GB
Chinois zh CN
Espagnol es ES
Français fr FR
Italien it IT
Japonais ja JP
Néerlandais nl NL
Polonais pl PL
Portugais pt PT
Russe ru RU
Suédois sv SE
Turc tr TR
© 2025 Tous droits réservés à Scellius
25.18-1.11