> ## Documentation Index
> Fetch the complete documentation index at: https://docs.i-pay.money/llms.txt
> Use this file to discover all available pages before exploring further.

# SDK JavaScript

Le SDK JavaScript iPaymoney permet d'ajouter un bouton de paiement à votre application web sans développer une intégration complète côté frontend.

## Prérequis

Avant de commencer, assurez-vous de disposer :

* d'un compte marchand iPaymoney actif ;
* de votre clé publique marchand ;
* d'une référence de transaction unique pour chaque paiement ;
* d'une URL de redirection après paiement ;
* d'une URL de callback pour recevoir le statut du paiement.

## Installer le SDK

Ajoutez le script du SDK juste avant la balise fermante `</body>` de votre page.

```html theme={null}
<script src="https://i-pay.money/checkout.js"></script>
```

## Ajouter le bouton de paiement

Placez le bouton de paiement à l'endroit souhaité dans votre page, puis renseignez les attributs avec les valeurs de votre transaction.

```html theme={null}
<button
  type="button"
  class="ipaymoney-button"
  data-amount="100"
  data-environement="live"
  data-key="VOTRE_CLE_PUBLIQUE"
  data-transaction-id="REF-TRANSACTION-001"
  data-redirect-url="https://votre-site.com/paiement/succes?source=ipaymoney"
  data-callback-url="https://votre-site.com/api/ipaymoney/callback"
>
  Payer maintenant
</button>
```

## Attributs disponibles

| Attribut              | Type   | Obligatoire | Description                                                                                                                       |
| --------------------- | ------ | ----------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `data-amount`         | string | Oui         | Montant à payer. Exemple : `100`.                                                                                                 |
| `data-environement`   | string | Oui         | Environnement du compte marchand. Exemple : `live`.                                                                               |
| `data-key`            | string | Oui         | Clé publique marchand iPaymoney.                                                                                                  |
| `data-transaction-id` | string | Oui         | Référence unique de la transaction.                                                                                               |
| `data-redirect-url`   | URL    | Oui         | URL vers laquelle le navigateur est redirigé après un succès. Utilisez une URL qui contient déjà un premier paramètre de requête. |
| `data-callback-url`   | URL    | Oui         | URL appelée en `POST` par le navigateur tant que la page reste ouverte. Ce callback n'est pas un webhook serveur.                 |

> \[!WARNING]
> Utilisez exactement l'attribut `data-environement` tel qu'indiqué ci-dessus.

> \[!WARNING]
> L'utilisateur doit rester sur la page de paiement jusqu'à la fin de l'opération afin que le callback puisse être traité correctement.

> \[!WARNING]
> Ne validez jamais une commande uniquement avec la redirection ou `data-callback-url`. Vérifiez la référence côté serveur avec l'API ou un webhook authentifié.

## Exemple complet

```html theme={null}
<!doctype html>
<html lang="fr">
  <head>
    <meta charset="utf-8" />
    <title>Paiement iPaymoney</title>
  </head>
  <body>
    <button
      type="button"
      class="ipaymoney-button"
      data-amount="100"
      data-environement="live"
      data-key="VOTRE_CLE_PUBLIQUE"
      data-transaction-id="REF-TRANSACTION-001"
      data-redirect-url="https://votre-site.com/paiement/succes?source=ipaymoney"
      data-callback-url="https://votre-site.com/api/ipaymoney/callback"
    >
      Payer maintenant
    </button>

    <script src="https://i-pay.money/checkout.js"></script>
  </body>
</html>
```
