# Collecte de paiements

Acceptez des paiements uniques de vos répondants via Stripe.

## Collecte de paiements

Collectez des paiements uniques directement dans votre formulaire. Connectez Stripe, insérez un champ Paiement, définissez un prix, et vos répondants paient via Stripe Checkout.

<h2 id="connect-stripe">Connecter Stripe</h2>

<p>
  Une connexion Stripe appartient à un seul formulaire : connectez-la depuis le formulaire sur lequel vous voulez collecter de l’argent, et
  répétez l’opération pour le formulaire suivant. Les détails de carte ne transitent jamais par Formstep.
</p>

<p>Le badge sur le bloc Paiement vous indique où en est la connexion :</p>

> ⚠️ **La publication est bloquée tant que les paiements ne sont pas complets**
> <p>
>     Un formulaire avec un champ Paiement ne se publie pas tant que chaque bloc de paiement n’a pas une devise prise en charge et un montant
>     au moins égal au minimum de cette devise, et que le formulaire n’a pas de compte Stripe connecté avec les paiements activés.
>   </p>

<h2 id="how-it-works">Fonctionnement de la connexion Stripe</h2>

<p>
  Formstep utilise{' '}
  <a href="https://docs.stripe.com/connect" target="_blank" rel="noopener">
    Stripe Connect
  </a>{' '}
  pour lier votre compte Stripe à votre formulaire. La charge est créée sur votre compte, pas sur le nôtre. Concrètement :
</p>

<p>
  Formstep peut consulter le statut de votre compte Stripe (si les paiements sont activés et l’intégration terminée) ainsi que les
  informations de base sur les transactions (statut du paiement, montant, lien vers le reçu). Formstep ne peut pas lire votre solde Stripe,
  votre liste de clients, ni rien en dehors des paiements effectués via vos formulaires.
</p>

<h2 id="set-the-price">Définir le prix</h2>

<p>
  Choisissez une devise et saisissez un montant sur le bloc Paiement. Le montant doit être au moins égal au minimum de facturation de Stripe
  pour cette devise — 0,50 $ pour l’USD et l’EUR, 0,30 £ pour la GBP, 50 ¥ pour le JPY, 3 kr pour le SEK et le NOK. Stripe plafonne une
  charge unique juste en dessous de 1 000 000, alors restez en dessous de ce plafond.
</p>

<p>Devises prises en charge : USD, EUR, GBP, JPY, CAD, AUD, CHF, SEK, NOK, DKK, NZD, SGD, HKD, AED, TRY.</p>

<p>
  Le champ Paiement prend en charge les paiements uniques uniquement — les abonnements récurrents ne font pas partie de cette
  fonctionnalité.
</p>

<h2 id="dynamic-pricing">Tarification dynamique</h2>

<p>
  Vous pouvez faire varier le montant à partir des réponses du répondant. Ajoutez une action <strong>Définir le montant du paiement</strong>{' '}
  à une règle logique au-dessus de votre champ Paiement et pointez-la vers le bloc.
</p>

<p>
  Chaque action choisit comment elle modifie le prix — <strong>définir à</strong>, <strong>augmenter de</strong>, ou{' '}
  <strong>diminuer de</strong> :
</p>
<ul>
  <li>
    <strong>Définir à</strong> — remplace le prix en cours par un montant absolu.
  </li>
  <li>
    <strong>Augmenter de</strong> / <strong>Diminuer de</strong> — ajuste le prix en cours. Empilez plusieurs actions pour des options, des
    majorations ou des réductions ; chacune s’appuie sur le montant atteint jusque-là, et le résultat ne descend jamais en dessous de zéro.
  </li>
</ul>
<p>La valeur elle-même peut être :</p>
<ul>
  <li>
    <strong>Un nombre fixe</strong> — un montant littéral.
  </li>
  <li>
    <strong>Une référence de champ</strong> — choisissez un <a href="/fr/building-forms/calculated-fields">champ calculé</a> pour que le
    montant suive les réponses.
  </li>
</ul>

<p>
  Les règles s’exécutent dans l’ordre où elles apparaissent dans le formulaire, en partant du prix défini sur le bloc. Un{' '}
  <strong>définir à</strong> plus tardif écrase ce que les règles précédentes ont produit, alors placez votre règle la plus spécifique en
  dernier.
</p>

<p>
  Exemple : un formulaire de billetterie comporte un menu déroulant (« Standard » ou « VIP ») et un champ Nombre pour la quantité. Un champ
  calculé multiplie le prix de base par la quantité. Une règle logique cible le champ Paiement : si le menu déroulant vaut « VIP »,{' '}
  <strong>définissez</strong> le montant du paiement sur le champ calculé.
</p>

<p>
  Exemple d’option : un prix de 50 $ sur le bloc, un interrupteur « Livraison express » qui <strong>augmente</strong> le montant de 15, et
  un interrupteur « Membre » qui le <strong>diminue</strong> de 5. Avec les deux activés, le répondant paie 60 $.
</p>

> 💡 **Le prix du bloc est la valeur de repli**
> <p>
>     Le prix que vous définissez sur le bloc Paiement est ce que les répondants voient avant qu’une règle ne se déclenche. Faites-en votre
>     prix le plus courant pour que le formulaire n’affiche jamais un montant provisoire.
>   </p>

<h2 id="respondent-experience">Expérience du répondant</h2>

<p>
  Le répondant clique sur <strong>Finaliser le paiement</strong> sur la carte et Stripe Checkout s’ouvre, hébergé par Stripe. Après avoir
  payé, il revient sur le formulaire pour terminer et soumettre. Le montant facturé est recalculé sur le serveur à partir de vos propres
  règles — un client altéré ne peut pas changer le prix.
</p>

<p>
  Si le paiement échoue (carte expirée, fonds insuffisants), la carte affiche l’erreur et un bouton <strong>Réessayer le paiement</strong>{' '}
  qui rouvre Checkout.
</p>

<h2 id="after-payment">Après le paiement</h2>

<p>
  Une fois qu’un répondant a payé, Formstep verrouille les questions qui ont déterminé le montant — les conditions et valeurs de toute règle
  qui l’a défini, les champs derrière un champ calculé référencé, et tout ce qui contrôle la visibilité du bloc Paiement. Les questions
  verrouillées affichent leurs réponses en lecture seule avec « Verrouillé car cette réponse a été utilisée pour un paiement effectué. » Le
  reste du formulaire reste modifiable.
</p>

> ⚠️ **Un paiement rend la soumission définitive**
> <p>
>     Toute version de formulaire contenant un champ Paiement, Signature ou Planifier un rendez-vous désactive{' '}
>     <a href="/fr/submissions-analytics/edit-after-submit">la modification après soumission</a> pour les réponses faites sur cette version.
>   </p>

<h2 id="viewing-payments">Consulter les paiements</h2>

<p>Les paiements apparaissent avec la réponse dans l’onglet Soumissions :</p>

<p>
  Le paiement part aussi avec la soumission : les e-mails de notification, le PDF, les exports, les webhooks, Zapier, n8n, Make, les
  callbacks de demande et l’API transmettent son montant, sa devise, son statut et son lien vers le reçu sous le champ Paiement. Voir{' '}
  <a href="/fr/developers/webhooks-reference#bookings-and-payments">Réservations et paiements</a> pour le format.
</p>

<h2 id="refunds-and-disputes">Remboursements et litiges</h2>

<p>
  Étant donné que les paiements vont directement sur votre compte Stripe, vous gérez vous-même les remboursements et les litiges. Formstep
  se réserve le droit d’émettre des remboursements en votre nom en cas d’abus ou de violation de ses conditions d’utilisation. Lorsque
  Stripe signale un remboursement ou un litige, le paiement de la soumission passe à <strong>Refunded</strong>,{' '}
  <strong>Partially refunded</strong> ou <strong>Disputed</strong> ; les intégrations ne sont pas renvoyées.
</p>

<p>La documentation Stripe couvre les deux en détail :</p>
<ul>
  <li>
    <a href="https://docs.stripe.com/refunds" target="_blank" rel="noopener">
      Remboursements
    </a>
  </li>
  <li>
    <a href="https://docs.stripe.com/disputes" target="_blank" rel="noopener">
      Litiges
    </a>
  </li>
</ul>

<h2 id="logic-conditions">Conditions de logique pour les paiements</h2>

<p>
  Un champ Paiement peut aussi être lu par la logique : <strong>le montant est égal à</strong>, <strong>le montant est supérieur à</strong>,{' '}
  <strong>le montant est inférieur à</strong>, <strong>est terminé</strong>, et <strong>n’est pas terminé</strong>. Consultez{' '}
  <a href="/fr/building-forms/conditional-logic">Logique conditionnelle</a> pour la référence complète des opérateurs.
</p>

<h2 id="next-steps">Étapes suivantes</h2>
<div class="not-prose grid gap-3 sm:grid-cols-2">
  - [Protection contre les robots](/fr/building-forms/captcha-bot-protection) — Bloquez les soumissions frauduleuses sur les formulaires de paiement
  - [Boîte de réception des soumissions](/fr/submissions-analytics/submission-inbox) — Consultez les détails de paiement avec les réponses
  - [Liens de partage](/fr/sharing-publishing/sharing-embedding) — Créez et gérez les URLs de partage
  - [Champs calculés](/fr/building-forms/calculated-fields) — Calculer des prix dynamiques à partir des réponses
</div>
