# Pour commencer (https://dev.cosmospay.lat/docs/fr/getting-started/)

> Tout ce dont vous avez besoin avant votre premier paiement Cosmos Pay, à savoir ce que c'est, comment se déroule un paiement et les deux façons d'intégrer.

**Cosmos Pay** vous permet d'accepter des paiements sur [Stellar](https://stellar.org),
[Solana](https://solana.com) et [Monad](https://monad.xyz) à l'aide des **intentions de paiement** : vous décrivez un paiement, le payeur le complète depuis son propre
portefeuille, et vous le confirmez sur la chaîne. Autour de ce cœur, vous bénéficiez aussi de **swaps** (sur chaque réseau et entre eux), de **webhooks**, **produits**,
**clients** et **analyses**.

Il existe deux façons d'intégrer, et la plupart des applications utilisent les deux ensemble :

- [Utiliser le SDK (recommandé)](https://dev.cosmospay.lat/docs/sdk/server/overview/): @cosmosapp/pay_sdk, un client JavaScript/TypeScript typé qui gère l'authentification, les requêtes et la signature par le portefeuille pour vous.
- [Appeler directement l'API REST](https://dev.cosmospay.lat/docs/api/): L'API REST Payments (OpenAPI) si vous n'êtes pas en JavaScript ou si vous voulez un contrôle total sur les requêtes.

## Comment fonctionne un paiement

Chaque paiement passe par les trois mêmes étapes (ici avec le SDK, sur Stellar) :

1. **Votre serveur crée une intention** avec votre clé API secrète, par ex. `client.paymentIntents.createPay({ ... })`. Vous récupérez un `uri` SEP-7 et un `qr` à présenter au payeur.
2. **Le payeur la complète** dans son portefeuille Stellar (Freighter, xBull, Rabet, LOBSTR ou Albedo). Dans le navigateur, c'est un seul appel : `new WebClient().pay(intent)`, qui renvoie un `txHash` sur la chaîne.
3. **Votre serveur valide** ce hash avec `intent.validate(txHash)`, ce qui met à jour le statut du paiement et déclenche un webhook vers vos points de terminaison.

Sur Solana et Monad, indiquez `chain`, avec le SDK (`createPay({ chain: 'solana', ... })`, depuis la version 2.2) ou l'[API REST](https://dev.cosmospay.lat/docs/api/payment-intents/) :
vous obtenez un lien Solana Pay ou EIP-681 au lieu d'un lien SEP-7, le payeur le règle depuis n'importe quel
portefeuille de ce réseau, et l'API Payments détecte le paiement sur la chaîne et déclenche les mêmes webhooks.

> **Testnet vs mainnet**
>
> Vous ne choisissez jamais le réseau dans le code ; il est déterminé par le **préfixe de votre clé API** : les clés `dv_` s'exécutent
> sur le **testnet**, les clés `prod_` s'exécutent sur le **mainnet**. Développez avec une clé `dv_`, puis remplacez-la par une
> clé `prod_` pour passer en production.

## Avant de commencer

1. **Obtenez une clé API** : connectez-vous à la plateforme développeur et générez-en une. Voir [Obtenez votre clé API](https://dev.cosmospay.lat/docs/api-keys/).
2. **Installez le SDK** : `npm install @cosmosapp/pay_sdk` (Node.js ≥ 18). Voir [Installation](https://dev.cosmospay.lat/docs/sdk/server/installation/).
3. **Gardez la clé sur votre serveur.** C'est un secret ; le client web du navigateur n'en a jamais besoin.

## Votre premier paiement

```ts
import { Client, Assets } from '@cosmosapp/pay_sdk';

const client = new Client({ apiKey: process.env.COSMOS_PAY_API_KEY });

const intent = await client.paymentIntents.createPay({
  destination: 'G...YOUR_MERCHANT_ACCOUNT',
  amount: '10',
  asset: Assets.XLM,
  msg: 'Order #1001',
});

console.log(intent.uri); // show as a link / button
console.log(intent.qr);  // render this data: URL as an <img>
```

## Étapes suivantes

- [Obtenez votre clé API](https://dev.cosmospay.lat/docs/api-keys/): Connectez-vous, choisissez un environnement et générez une clé dans le tableau de bord.
- [Démarrage rapide](https://dev.cosmospay.lat/docs/sdk/server/quickstart/): L'exemple complet serveur-crée / navigateur-complète.
- [Webhooks](https://dev.cosmospay.lat/docs/sdk/server/webhooks/): Soyez notifié à l'instant où un paiement réussit.
- [Référence de l'API](https://dev.cosmospay.lat/docs/api/): Chaque point de terminaison, avec ses schémas et un terrain de jeu de requêtes.
