> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ACH Direct Debit

> Aceite ACH Direct Debit de clientes dos EUA que pagam em USD. Saiba como os débitos bancários funcionam no checkout, quanto tempo levam para ser compensados e como testá-los.

ACH Direct Debit permite que clientes nos Estados Unidos paguem usando a conta bancária em vez de um cartão. Ele opera na rede Automated Clearing House e é oferecido em checkouts em USD para pagamentos únicos.

## Por que oferecer ACH Direct Debit?

> **Lower Processing Cost**
>
> ACH custa uma taxa fixa de 1,5% por pagamento, limitada a \$15, em vez da taxa do cartão. Consulte os [preços](https://dodopayments.com/pricing).

> **No Card Required**
>
> Alcance clientes dos EUA que preferem pagar usando uma conta bancária ou que não querem usar um cartão para uma compra de alto valor.

> **Higher Value Orders**
>
> Como a taxa é limitada a \$15, a economia em relação à taxa do cartão aumenta conforme o valor do pedido. ACH é adequado para compras únicas de alto valor.

## Visão geral

| Detalhe | Valor |
| :- | :- |
| **Moeda de cobrança** | USD |
| **Países compatíveis** | Estados Unidos |
| **Assinaturas** | Não |
| **Valor mínimo** | \$0.50 |
| **Liquidação** | Até 4 dias úteis |

> [!WARNING]
>
> ACH Direct Debit não é instantâneo. Um pagamento pode levar **até 4 dias úteis** para ser aprovado ou falhar. Um débito autorizado não é um pagamento liquidado: só processe o pedido depois que o pagamento atingir o estado succeeded.

## Como funciona

```mermaid theme={null}
sequenceDiagram
    participant Customer
    participant Checkout
    participant Dodo
    participant ACH as ACH Network
    participant Bank

    Customer->>Checkout: Select ACH Direct Debit
    Checkout->>Customer: Ask for bank account details
    Customer->>Checkout: Enter details and authorize the debit
    Checkout->>Dodo: Create payment
    Dodo->>ACH: Submit debit request
    Note over ACH,Bank: Clearing takes up to 4 business days
    ACH->>Bank: Debit customer account
    Bank->>ACH: Confirm or return
    ACH->>Dodo: Final status
    Dodo->>Checkout: Payment succeeded or failed
```

## Experiência do cliente

1. O cliente seleciona **ACH Direct Debit** no checkout.
2. O cliente informa o nome do titular da conta, o routing number, o account number, o tipo de conta (checking ou savings) e o endereço de e-mail. O checkout verifica se o routing number é válido.
3. O cliente envia o formulário, autorizando o débito de sua conta bancária nos EUA por meio de um mandato.
4. O pagamento é enviado à rede ACH e entra no estado processing. O checkout é concluído sem aguardar a compensação.
5. A compensação é concluída nos dias úteis seguintes.
6. O pagamento passa para o estado succeeded ou falha se o banco o rejeitar.

> [!NOTE]
>
> Como a compensação é assíncrona, use [webhooks](https://docs.dodopayments.com/developer-resources/webhooks.md) para saber o resultado final em vez do redirecionamento do checkout. Um redirecionamento após o checkout significa apenas que o cliente autorizou o débito.
>
> O pagamento emite `payment.processing` assim que o débito é enviado e, depois, `payment.succeeded` ou `payment.failed` quando a compensação é concluída. Processe o pedido somente quando ocorrer `payment.succeeded`.

## Disponibilidade

O ACH Direct Debit aparece no checkout quando todas as condições a seguir são atendidas:

* A **moeda de cobrança** é `USD`.
* O **país de cobrança** é `US`.
* A transação é um **pagamento único**.

> [!NOTE]
>
> ACH Direct Debit não está disponível para assinaturas. Para pagamentos recorrentes, use cartões ou outro método compatível com assinaturas. Consulte a [visão geral dos métodos de pagamento](https://docs.dodopayments.com/features/payment-methods.md).

## Configuração

```javascript theme={null}
const session = await client.checkoutSessions.create({
  product_cart: [{ product_id: 'pdt_123', quantity: 1 }],
  allowed_payment_method_types: ['ach', 'credit', 'debit'],
  billing_currency: 'USD',
  billing_address: {
    country: 'US',
    zipcode: '94102'
  },
  return_url: 'https://example.com/success'
});
```

> [!NOTE]
>
> ACH Direct Debit exige USD como moeda de cobrança e um endereço de cobrança nos EUA. Se você definir preços em outra moeda, habilite [Adaptive Currency](https://docs.dodopayments.com/features/adaptive-currency.md) para que os clientes dos EUA sejam cobrados em USD e o ACH fique disponível.

## Tipo de método da API

| Tipo | Método | País |
| :- | :- | :- |
| `ach` | ACH Direct Debit | Estados Unidos |

## Reembolsos e disputas

Reembolsos e disputas de pagamentos ACH usam as mesmas APIs e os mesmos fluxos do dashboard que todos os outros métodos de pagamento. Não é necessário um tratamento específico para ACH.

> [!WARNING]
>
> O banco do cliente pode devolver um débito ACH depois que ele parece ter sido concluído e, de acordo com as regras da Nacha, um cliente pode devolver um débito não autorizado de uma conta pessoal por até 60 dias corridos após a liquidação. Não emita um reembolso até que o pagamento original tenha atingido o estado succeeded.

## Testes

**1. Enable test mode**

Desative a opção **Live Mode** na barra lateral do dashboard e use chaves de API criadas no modo de teste.

**2. Set currency and billing address**

Defina a moeda de cobrança como `USD` e o país do endereço de cobrança como `US`.

**3. Include `ach` in allowed methods**

Envie `ach` em `allowed_payment_method_types` ou omita o campo para exibir todos os métodos elegíveis.

**4. Enter the test bank details**

Insira um dos pares de routing number e account number de teste abaixo. Depois, confirme que seu handler de webhook recebe o status final do pagamento.

### Contas bancárias de teste

O cliente insere os account numbers e routing numbers no formulário de checkout. No modo de teste, use o routing number `110000000` com um destes account numbers para forçar um resultado:

| Account Number | Routing Number | Comportamento |
| :- | :- | :- |
| `000123456789` | `110000000` | O pagamento é aprovado. |
| `000222222227` | `110000000` | O pagamento falha devido a fundos insuficientes. |
| `000111111113` | `110000000` | O pagamento falha porque a conta está encerrada. |
| `000111111116` | `110000000` | O pagamento falha porque nenhuma conta foi encontrada. |
| `000333333335` | `110000000` | O pagamento falha porque débitos não são autorizados na conta. |
| `000444444440` | `110000000` | O pagamento falha devido a uma moeda inválida. |
| `000555555559` | `110000000` | O pagamento é aprovado e depois gera uma disputa. |
| `000000000009` | `110000000` | O pagamento permanece em processing indefinidamente. Use-o para testar uma interface de usuário no estado pendente. |

> [!NOTE]
>
> Os pagamentos de teste atingem um status final muito mais rapidamente que os pagamentos reais, portanto você não precisa esperar dias para verificar sua integração. A exceção é `000000000009`, que permanece em processing.

## Práticas recomendadas

> **Don't fulfill on authorization**
>
> Uma autorização ACH não é um pagamento. Aguarde até que o pagamento atinja o estado succeeded antes de conceder acesso ou enviar o pedido. O banco do cliente ainda pode devolver o débito.

> **Set customer expectations at checkout**
>
> Informe aos clientes que pagamentos bancários não são compensados imediatamente. Isso reduz os tickets de suporte perguntando por que um pedido ainda está pendente.

> **Provide card fallbacks**
>
> Inclua `credit` e `debit` junto com `ach`, para que clientes que precisam de acesso imediato ao seu produto possam escolher um método mais rápido.

> **Use ACH for high-value one-time purchases**
>
> A taxa ACH é limitada a \$15, portanto a economia é maior em compras únicas de alto valor.

## Solução de problemas

> **ACH not appearing at checkout**
>
> **Verifique:**
>
> 1. A moeda de cobrança é `USD`?
> 2. O país de cobrança do cliente é `US`?
> 3. `ach` está incluído em `allowed_payment_method_types`?
> 4. Este é um pagamento único? ACH não é oferecido para assinaturas.
> 5. O valor é de pelo menos \$0.50?
>
> **Solução:** Remova `allowed_payment_method_types` temporariamente para ver todos os métodos elegíveis e, em seguida, verifique a moeda e o país do endereço de cobrança na sua solicitação de API.

> **ACH not appearing on a subscription checkout**
>
> **Causa:** ACH Direct Debit é oferecido apenas para pagamentos únicos.
>
> **Solução:** use cartões ou outro método compatível com assinaturas para cobranças recorrentes.

> **Payment stuck in processing**
>
> **Causa:** Isso é esperado. Um pagamento ACH permanece no estado processing durante toda a janela de compensação, que é muito mais longa que a de um pagamento com cartão.
>
> **Solução:** Aguarde o webhook final. Não tente novamente o pagamento, pois uma nova tentativa pode debitar o cliente duas vezes.

> **Payment failed after initially succeeding at checkout**
>
> **Causa:** O checkout foi concluído, mas o banco do cliente devolveu o débito durante a compensação, geralmente por fundos insuficientes ou conta encerrada. O pagamento emite `payment.failed`.
>
> **Solução:** Trate o pagamento como falho e peça ao cliente que pague com outro método. Processe o pedido somente no estado succeeded para evitar isso.

## Páginas relacionadas

> **[Payment Methods Overview](https://docs.dodopayments.com/features/payment-methods.md)**
>
> Veja todos os métodos de pagamento compatíveis.

> **[Adaptive Currency](https://docs.dodopayments.com/features/adaptive-currency.md)**
>
> Suporte a moedas e conversão automática.

> **[Checkout Guide](https://docs.dodopayments.com/developer-resources/checkout-session.md)**
>
> Guia completo de implementação do checkout.

> **[Webhooks](https://docs.dodopayments.com/developer-resources/webhooks.md)**
>
> Trate confirmações de pagamento atrasadas de forma assíncrona.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.