Processing ACH & bank transfers

    Learn how to accept ACH and bank transfer payments on Stripe.

    Accepting ACH and bank transfer payments is a two-step process:

    1. Enable the payment method in the Dashboard.
    2. Use the individual payment method guides to implement it.

    We plan to support all payment methods on the Payment Methods API. ACH is not yet supported—use the Sources API in the meantime.

    The Payment Methods API

    The new Payment Methods API replaces the existing Tokens and Sources APIs as the recommended way for integrations to collect and store payment information. It works with the Payment Intents API to create payments for a wide range of payment methods.

    A PaymentMethod object is stateless, relying on the PaymentIntent object to represent the transaction state of a given payment.

    Payment Method Payment Methods with
    Payment Intents API
    Tokens or Sources with
    Charges API
    ACH Debit Planned Supported on Tokens (not Sources)
    ACH Credit Transfer Planned Beta
    SEPA Direct Debit Supported Supported
    BECS Direct Debit in Australia Supported Not supported

    If your integration currently uses the Sources or Tokens API, follow the migration guide to transition to the Payment Intents and Payment Methods APIs.

    The Sources API

    Need to use a payment method that’s not yet supported by the Payment Methods API? Use the Sources API instead.

    The main difference between the Payment Methods API and the Sources API is that sources describe transaction state through the status property, which means that each Source object must be transitioned to a chargeable state before it can be used for a payment.

    Was this page helpful?

    Feedback about this page?

    Thank you for helping improve Stripe's documentation. If you need help or have any questions, please consider contacting support.

    On this page