Accéder directement au contenu
Créez un compte ou connecter-vous
Logo de la documentation Stripe
/
Demander à l'assistant IA
Créez un compteConnectez-vous
Démarrer
Paiements
Revenus
Plateformes et marketplaces
Gestion de fonds
Ressources pour les développeurs
API et SDKAide
AperçuAccepter un paiementMettre votre intégration à niveau
Paiements en ligne
PrésentationTrouver votre cas d'usage
Utiliser Payment Links
Utiliser une page de paiement préconfiguré
Créer une intégration personnalisée avec Elements
Développer une intégration dans l'application
Utiliser Managed Payments
Paiements récurrents
Paiements par TPE
Terminal
Moyens de paiement
Ajouter des moyens de paiement
    Présentation
    Options d'intégration des moyens de paiement
    Gérer les moyens de paiement par défaut dans le Dashboard
    Types de moyens de paiement
    Cartes bancaires
    Payer avec le solde Stripe
    Paiements en stablecoins
    Prélèvements bancaires
      Prélèvement automatique ACH
        Accepter un paiement
        Enregistrer les informations bancaires
        Migrating to new ACH Direct Debit APIs
          Migrer les comptes bancaires existants
        Migrer depuis un autre prestataire de services de paiement
        Comptes bancaires bloqués
        Codes SEC
        Règle Nacha pour les achats d’e-commerce grand public
      Prélèvement automatique Bacs
      Débit préautorisé au Canada
      Prélèvement automatique BECS en Australie
      Prélèvement automatique BECS en Nouvelle-Zélande
      Prélèvement automatique SEPA
    Virements avec redirection bancaire
    Virements bancaires
    Virements (Sources)
    Achetez maintenant, payez plus tard
    Paiements en temps réel
    Coupons
    Portefeuilles
    Activer des moyens de paiement locaux par pays
    Moyens de paiement personnalisés
Gérer les moyens de paiement
Paiement accéléré avec Link
Opérations de paiement
Analyses
Soldes et délai de règlement
Conformité et sécurité
Devises
Refus de paiement
Litiges
Prévention de la fraude
Radar pour la protection contre la fraude
Virements
ReçusRemboursements et annulations
Intégrations avancées
Tunnels de paiement personnalisés
Acquisition flexible
Paiements hors session
Orchestration multiprestataire
Au-delà des paiements
Constituez votre entreprise
Cryptomonnaies
Commerce agentique
Paiements automatiques
Financial Connections
Climate
Vérifier l'identité
États-Unis
Français (France)
AccueilPaiementsAdd payment methodsBank debitsACH Direct Debit

Remarque

Cette page n'est pas encore disponible dans cette langue. Nous faisons tout notre possible pour proposer notre documentation dans davantage de langues et nous vous fournirons la version traduite dès qu'elle sera disponible.

Migration des ACH Direct Debit depuis Charges vers les API plus récents.

Découvrez pourquoi et comment migrer depuis l'API Charges.

Stripe is removing support for ACH Direct Debit using legacy integrations.

If you create legacy ACH Direct Debit payments, you must migrate to the Payment Intents API or Checkout Sessions API.

Feature comparison

Stripe’s new APIs offer features that aren’t available in legacy integrations:

FonctionnalitéLegacy IntegrationsAPI Payment Intents ou API Checkout Sessions
Services de support pour CheckoutNonOui
Service de support pour Payment ElementNonOui
Services de support dynamique pour les moyens de paiementNonOui
Vitesse de règlementT+6T+4 (T+2 en cas de virement des fonds accéléré)
Vérification instantanée des comptes bancairesUniquement disponible via des intégrations personnalisées tiercesVérification instantanée avec Financial Connections
Fraud preventionNon
  • Radar pour ACH
  • Contrôles de solde avec Financial Connections
  • Relances intelligentes Smart Retries
Pays pris en chargeÉtats-UnisÉtats-Unis, UE et Royaume-Uni

Comparez les API Checkout Sessions et Payment Intents

Stripe offers two new APIs to accept ACH Direct Debits payments: Payment Intents and Checkout Sessions APIs.

  • API Checkout Sessions : prend en charge les flux de paiement courants avec des fonctionnalités intégrées qui éliminent le besoin de code personnalisé. Cet API est recommandé pour la plupart des développeurs.

  • API Payment Intents : une API de bas niveau pour construire votre propre flux de paiement. Elle nécessite beaucoup plus de code et une maintenance continue. Nous recommandons Checkout Sessions pour la plupart des intégrations.

En savoir plus sur les différences et comment évaluer quelle solution vous convient le mieux.

Créer une intégration ACH Direct Debit

Pour créer une intégration ACH Direct Debit avec Payment Intents ou Checkout Sessions :

  1. Activez ACH Direct Debit dans vos paramètres de moyens de paiement.

  2. Pour collecter et utiliser de nouveaux moyens de paiement, intégrez-vous avec ACH on Payment Intents or Checkout Sessions.

  3. For bank accounts previously collected using the Tokens API, you can continue to use saved BankAccount objects as PaymentMethod objects with the Payment Intents API. For details, see Migrate existing bank accounts.

  4. Tester votre intégration.

  5. Migrez progressivement tous les paiements utilisant des comptes bancaires existants vers l’API Payment Intents ou Checkout Sessions.

  6. Remove your legacy integration.

Behavioral differences

Some features that exist in both APIs work differently. If you rely on any of the following behaviors, update your integration accordingly.

BehaviorLegacy IntegrationsPayment Intents or Checkout Sessions API
MandatesNot enforced by the API.
  • Enforced by the API. Payments can’t be initiated without an active mandate.
  • Mandates can become inactive, which renders the payment method unusable. This can occur when a customer disputes a payment, when certain payment failures occur, or when Stripe becomes aware that the payment method is no longer valid. For more information, see Blocked bank accounts.
  • If you reuse bank accounts created with the Tokens API, you must first create mandates for them. See Migrate existing bank accounts.
Balance transactions
  • Created when the charge is created.
  • The Balance transaction object is present in the charge.pending event and the API response.
  • Created when the payment is submitted to the banking partner.
  • The Balance transaction object is present in the charge.updated event, but not the API response.
Type de soldeFunds settle in source_type=bank_account.
  • Funds settle in source_type=card, shared with cards and other payment methods.
  • If you manually specify the balance type for payouts or Connect transfers, update your integration to use the new balance type.
  • During migration, you receive one payout for each balance type until all new payments use the new API.
  • For separate charges and transfers with source_transaction, wait for the charge.updated webhook before creating a transfer.
Microdépôts
  • Two microdeposits of random, small amounts for verification.
  • No hosted verification UI.
  • One 1¢ microdeposit with a descriptor code for verification. In rare cases, Stripe sends two microdeposits of random, small amounts instead.
  • Stripe provides a hosted verification page and sends automatic reminder emails to customers.
  • Customers must verify their bank account within 10 days. If they don’t verify in time, the PaymentIntent or SetupIntent reverts to requiring new payment method details.
EmailsStripe doesn’t send automatic emails.
  • Stripe automatically emails customers a mandate confirmation when mandates are created.
  • When a customer attempts to verify a bank account using microdeposits, Stripe emails customers with a link to a hosted verification page.
  • You can disable Stripe emails and send custom notifications instead. For sample mandate text and required content, see Mandate and microdeposit emails.

Webhook differences

If you previously listened to Charge events, you might need to update your integration to listen to new event types. The following table shows how webhook events differ.

Old webhookNew webhook on CheckoutNew webhook on Payment IntentsSpecial instructions
charge.pendingpayment_intent.processingpayment_intent.processingIn legacy integrations, charge.pending includes balance transaction. In new integrations, the balance transaction isn’t available until the charge.updated event.
charge.updatedcharge.updatedcharge.updatedSent when the payment is submitted to the banking partner. Includes the balance transaction.
charge.succeededcheckout.session.completedpayment_intent.succeededLe webhook charge.succeeded est également envoyé, vous n’avez donc pas besoin de mettre à jour votre intégration pour écouter le nouveau webhook.
charge.failedNot applicable. The customer can re-attempt the payment on the same Checkout Session until it expires, at which point you receive a checkout.session.expired event.payment_intent.payment_failedLe webhook charge.failed est également envoyé, vous n’avez donc pas besoin de mettre à jour votre intégration pour écouter le nouveau webhook.
charge.dispute.createdcharge.dispute.createdcharge.dispute.createdNot applicable
Not applicablemandate.updatedmandate.updatedSent when a mandate becomes inactive.

Identify Legacy ACH Payments

On a Charge object, the payment_method_details.type property is ach_debit for the legacy integration and us_bank_account for the newer integration.

A legacy ACH payment is created when a legacy BankAccount is the payment source. This happens when:

  • You call the Create Charge API.
  • A Subscription or Invoice charges a customer whose default_source is a legacy BankAccount, and no default_payment_method is set on the customer, subscription, or invoice.
  • You call the Create PaymentIntent API with source set to a legacy BankAccount.
Cette page vous a-t-elle été utile ?
OuiNon
  • Besoin d'aide ? Contactez le service Support.
  • Consultez notre log des modifications.
  • Des questions ? Contactez l'équipe commerciale.
  • LLM ? Lire llms.txt.
  • Propulsé par Markdoc