Proposals & Invoices · Article 5.6
Paiement en ligne via Stripe Connect — Direct Charges, frais, 3DS, remboursements
Lorsque vous connectez Stripe, vos clients peuvent payer les factures par carte sur une page hébergée par Clozo. Les débits vont directement sur votre compte Stripe (architecture Direct Charge) ; Clozo ne prélève aucun frais de plateforme sur les paiements. Les frais de traitement standard de Stripe s'appliquent.
Stripe Connect est l'architecture qui permet à Clozo de proposer des paiements par carte sans jamais détenir votre argent. Une fois que vous avez complété le flux d'inscription Stripe dans /settings/payments, votre entreprise dispose de son propre compte Stripe ; les paiements de vos clients sont versés sur ce compte, et Stripe vous vire les fonds selon votre calendrier habituel (généralement J+2 à J+7 selon votre pays et votre profil de risque). Clozo fournit uniquement la surface de paiement et la piste d'audit.
Step by step
Connectez Stripe.
Ouvrez
/settings/paymentset cliquez surSe connecter avec Stripe. Vous êtes redirigé vers le flux d'inscription hébergé par Stripe. Munissez-vous d'une pièce d'identité et de votre IBAN professionnel.Attendez
charges_enabled.Quand Stripe envoie le webhook
account.updatedaveccharges_enabled=true, Clozo l'enregistre (apps/webhooks/views.py:548). Votre page/settings/paymentsbascule vers une bannière verte « Stripe connecté — acceptant les paiements ».Activez sur un devis.
Quand vous créez un devis, le bouton
paiement_en_ligne_activéest activé par défaut. Si vous souhaitez SEPA uniquement (sans carte), désactivez-le dans l'assistant.Envoyez le devis.
L'e-mail de facture d'acompte après signature inclut maintenant un bouton « Payer €X maintenant » en évidence aux côtés du QR code SEPA — les deux options sont présentées ; le client choisit.
Le client paie.
Stripe gère le paiement, le défi 3DS si nécessaire, et notifie Clozo via webhook (
payment_intent.succeeded). Le statut passe àAcompte payégénéralement en 2 secondes après la page de succès du client.
dans /settings/payments, un badge « Stripe connecté » avec les indicateurs de statut charges_enabled et payouts_enabled. Sur tout devis avec paiement en ligne activé, les menus Documents et Actions incluent des rappels de statut de paiement. Quand un paiement arrive, la Chronologie du devis reçoit un événement « Paiement reçu via Stripe — €X — pi_***** » avec l'identifiant PaymentIntent lié à votre tableau de bord Stripe.
Why this works this way
Architecture Direct Charge expliquée. Stripe Connect prend en charge trois modèles : Direct Charges, Destination Charges et Separate Charges and Transfers. Clozo utilise Direct Charges [D-012], implémenté dans apps/public/views.py — voir le commentaire « A-005: Direct Charge — money goes to freelancer's connected account » :
``python
payment_intent = stripe.PaymentIntent.create(
amount=int(amount_cents),
currency=currency.lower(),
stripe_account=proposal.user.stripe_account.account_id, # ← Direct Charge
metadata={...},
automatic_payment_methods={'enabled': True},
)
``
Le paramètre stripe_account est l'identifiant du compte connecté du freelancer. Stripe crée le PaymentIntent sur ce compte, pas sur le compte de plateforme de Clozo. L'argent ne transite jamais par les livres de Clozo. Cela a trois conséquences importantes :
1. Clozo ne prélève aucun frais de plateforme sur vos paiements. Il n'y a pas d'application_fee_amount sur le PaymentIntent (vérifiez dans apps/public/views.py). Les revenus de Clozo proviennent de votre abonnement, pas de vos transactions.
2. Les frais de traitement Stripe s'appliquent au compte connecté, pas à Clozo. Vous les voyez dans votre tableau de bord Stripe. Tarifs UE typiques : ~1,5 % + 0,25 € pour les cartes EEE, ~2,5 % + 0,25 € hors EEE. Les tarifs exacts dépendent de votre pays et de votre niveau tarifaire Stripe.
3. Les remboursements et les litiges appartiennent à votre compte connecté. Quand un client demande un remboursement, il est initié sur votre compte ; les fonds sont débités de votre solde. Clozo ne détient jamais l'argent à rembourser. Voir l'article 8.2 pour le flux de remboursement.
3D Secure 2 (SCA PSD2). La législation européenne (PSD2 + Normes techniques de réglementation SCA) exige une authentification forte du client pour la plupart des paiements par carte au-dessus de 30 €. Stripe gère cela automatiquement via 3DS2 (Three-D Secure version 2) : la banque du client peut émettre un défi supplémentaire (notification push à l'application bancaire, code SMS, validation biométrique). La configuration automatic_payment_methods={'enabled': True} de Stripe vous inscrit dans le routage 3DS optimisé de Stripe — ils ne déclenchent le défi que lorsque c'est nécessaire, pas à chaque débit, ce qui améliore la conversion par rapport au mode défi systématique.
Quels moyens de paiement sont proposés. Avec automatic_payment_methods activé, Stripe sélectionne automatiquement les meilleurs moyens pour le pays et le montant du client : cartes (Visa, Mastercard, Amex), et selon l'éligibilité, Prélèvement SEPA, iDEAL (NL), Bancontact (BE), Giropay (DE), EPS (AT), Przelewy24 (PL) et autres. L'ensemble des moyens visibles dans votre tableau de bord Stripe est un sous-ensemble de ceux-ci ; vous pouvez désactiver des méthodes spécifiques dans les paramètres de votre compte Stripe.
Exigences d'inscription. Stripe réalise le KYC/KYB à l'inscription conformément à l'AMLD5 européenne : nom et adresse de l'entreprise, pièce d'identité (passeport ou carte nationale d'identité), justificatif de compte bancaire (IBAN), déclaration de bénéficiaire effectif. Tant que charges_enabled=true n'est pas activé sur votre compte, vous ne pouvez pas accepter de paiements par carte — l'e-mail de devis Clozo part quand même, mais le bouton « Payer par carte » est masqué et seul SEPA + QR EPC reste visible. L'inscription se complète généralement en 5 à 10 minutes ; pour certaines entreprises, Stripe demande des documents supplémentaires et cela peut prendre quelques jours ouvrés.
Troubleshooting
Keep reading
Configuration
Stripe Connect: enabling card payments end to end
Five minutes through Stripe's onboarding turns on card payments for every future proposal — no extra config, no separate Stripe dashboard to manage, payouts land in your IBAN.
Lifecycle
Status: Deposit paid — work can start
The deposit landed (Stripe webhook or manual confirmation). Clozo flips the status, queues the deposit receipt PDF, and starts a behind-the-scenes job to pre-render the final invoice. You can begin the work.
Proposals & Invoices
SEPA bank transfer with EPC QR — when offered, how it works, what to put on the invoice
Every Clozo invoice includes IBAN, BIC, and an EPC-format QR code that any modern EU banking app scans into a pre-filled SEPA transfer. Works with or without Stripe enabled.
Refunds & Notifications
Stripe automatic refund (Direct Charges via Connect)
When the original deposit was paid via Stripe, the refund is automatic. Clozo issues a Refund on the freelancer's connected account, watches for the `refund.updated` webhook, and flips the credit note to `succeeded` once Stripe confirms — typically within 3–5 business days for the cash to reach the client.
Refunds & Notifications
Refund stages: issued → requested → succeeded (or manual)
The credit note moves through up to four states from creation to settled. Each state corresponds to a specific point in the refund lifecycle, with predictable UI badges and email triggers.