> ## 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

> Chấp nhận ACH Direct Debit từ khách hàng Hoa Kỳ thanh toán bằng USD. Tìm hiểu cách các khoản ghi nợ ngân hàng hoạt động tại checkout, mất bao lâu để hoàn tất và cách kiểm thử chúng.

ACH Direct Debit cho phép khách hàng tại Hoa Kỳ thanh toán từ tài khoản ngân hàng thay vì thẻ. Phương thức này hoạt động trên mạng lưới Automated Clearing House và được cung cấp cho các checkout bằng USD với các khoản thanh toán một lần.

## Tại sao nên cung cấp ACH Direct Debit?

<CardGroup cols={3}>
  <Card title="Lower Processing Cost" icon="piggy-bank">
    ACH có mức phí cố định 1.5% cho mỗi lần thanh toán, tối đa \$15, thay cho phí thẻ. Xem [bảng giá](https://dodopayments.com/pricing).
  </Card>

  <Card title="No Card Required" icon="building-columns">
    Tiếp cận khách hàng Hoa Kỳ muốn thanh toán từ tài khoản ngân hàng hoặc không muốn sử dụng thẻ cho một giao dịch mua có giá trị lớn.
  </Card>

  <Card title="Higher Value Orders" icon="chart-line">
    Vì phí được giới hạn ở mức \$15, khoản tiết kiệm so với phí thẻ sẽ tăng theo giá trị đơn hàng. ACH phù hợp với các giao dịch mua một lần có giá trị lớn.
  </Card>
</CardGroup>

## Tổng quan

| Chi tiết | Giá trị |
| :- | :- |
| **Đơn vị tiền tệ thanh toán** | USD |
| **Quốc gia được hỗ trợ** | Hoa Kỳ |
| **Subscriptions** | Không |
| **Số tiền tối thiểu** | \$0.50 |
| **Quyết toán** | Tối đa 4 ngày làm việc |

<Warning>
  ACH Direct Debit không diễn ra ngay lập tức. Một khoản thanh toán có thể mất **tối đa 4 ngày làm việc** để thành công hoặc thất bại. Khoản ghi nợ đã được ủy quyền không đồng nghĩa với khoản thanh toán đã quyết toán: chỉ thực hiện đơn hàng sau khi khoản thanh toán chuyển sang trạng thái succeeded.
</Warning>

## Cách thức hoạt động

```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
```

## Trải nghiệm khách hàng

1. Khách hàng chọn **ACH Direct Debit** tại checkout.
2. Khách hàng nhập tên chủ tài khoản, routing number, account number, loại tài khoản (checking hoặc savings) và địa chỉ email. Checkout kiểm tra routing number có hợp lệ hay không.
3. Khách hàng gửi biểu mẫu, qua đó ủy quyền ghi nợ từ tài khoản ngân hàng Hoa Kỳ theo một mandate.
4. Khoản thanh toán được gửi đến mạng lưới ACH và chuyển sang trạng thái processing. Checkout hoàn tất mà không chờ quá trình clearing.
5. Quá trình clearing hoàn tất trong những ngày làm việc tiếp theo.
6. Khoản thanh toán chuyển sang trạng thái succeeded hoặc thất bại nếu ngân hàng hoàn trả khoản ghi nợ.

<Info>
  Vì quá trình clearing diễn ra không đồng bộ, hãy sử dụng [webhooks](/developer-resources/webhooks) để biết kết quả cuối cùng thay vì dựa vào chuyển hướng của checkout. Việc chuyển hướng sau checkout chỉ có nghĩa là khách hàng đã ủy quyền ghi nợ.

  Khoản thanh toán phát ra `payment.processing` sau khi khoản ghi nợ được gửi, sau đó phát ra `payment.succeeded` hoặc `payment.failed` khi quá trình clearing hoàn tất. Chỉ thực hiện đơn hàng khi nhận được `payment.succeeded`.
</Info>

## Tính khả dụng

ACH Direct Debit xuất hiện tại trang thanh toán khi tất cả điều kiện sau đều được đáp ứng:

* **Đơn vị tiền tệ thanh toán** là `USD`.
* **Quốc gia thanh toán** là `US`.
* Giao dịch là **khoản thanh toán một lần**.

<Note>
  ACH Direct Debit không khả dụng cho subscriptions. Đối với các khoản thanh toán định kỳ, hãy sử dụng thẻ hoặc phương thức khác hỗ trợ subscriptions. Xem [tổng quan về Payment Methods](/features/payment-methods).
</Note>

## Cấu hình

```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 yêu cầu đơn vị tiền tệ thanh toán là **USD** và địa chỉ thanh toán ở **US**. Nếu bạn định giá bằng đơn vị tiền tệ khác, hãy bật [Adaptive Currency](/features/adaptive-currency) để khách hàng Hoa Kỳ được tính phí bằng USD và ACH khả dụng.
</Note>

## Loại phương thức API

| Loại | Phương thức | Quốc gia |
| :- | :- | :- |
| `ach` | ACH Direct Debit | Hoa Kỳ |

## Hoàn tiền và tranh chấp

Việc hoàn tiền và dispute đối với các khoản thanh toán ACH sử dụng cùng API và quy trình trên dashboard như mọi phương thức thanh toán khác. Bạn không cần xử lý riêng cho ACH.

<Warning>
  Ngân hàng của khách hàng có thể hoàn trả một khoản ghi nợ ACH sau khi khoản này có vẻ đã được xử lý, và theo quy định của Nacha, khách hàng có thể hoàn trả một khoản ghi nợ trái phép từ tài khoản cá nhân trong tối đa 60 ngày theo lịch kể từ khi quyết toán. Không hoàn tiền cho đến khi khoản thanh toán ban đầu chuyển sang trạng thái succeeded.
</Warning>

## Kiểm thử

<Steps>
  <Step title="Enable test mode">
    Tắt công tắc **Live Mode** trong thanh bên của dashboard và sử dụng các API key được tạo ở test mode.
  </Step>

  <Step title="Set currency and billing address">
    Đặt đơn vị tiền tệ thanh toán thành `USD` và quốc gia của địa chỉ thanh toán thành `US`.
  </Step>

  <Step title="Include `ach` in allowed methods">
    Truyền `ach` trong `allowed_payment_method_types` hoặc bỏ qua field này để hiển thị mọi phương thức đủ điều kiện.
  </Step>

  <Step title="Enter the test bank details">
    Nhập một trong các cặp routing number và account number kiểm thử bên dưới. Sau đó xác nhận rằng webhook handler của bạn nhận được trạng thái thanh toán cuối cùng.
  </Step>
</Steps>

### Tài khoản ngân hàng kiểm thử

Khách hàng nhập account number và routing number vào biểu mẫu checkout. Ở test mode, hãy sử dụng routing number `110000000` cùng với một trong các account number sau để buộc tạo ra một kết quả:

| Account Number | Routing Number | Hành vi |
| :- | :- | :- |
| `000123456789` | `110000000` | Khoản thanh toán thành công. |
| `000222222227` | `110000000` | Khoản thanh toán thất bại do không đủ tiền. |
| `000111111113` | `110000000` | Khoản thanh toán thất bại vì tài khoản đã đóng. |
| `000111111116` | `110000000` | Khoản thanh toán thất bại vì không tìm thấy tài khoản. |
| `000333333335` | `110000000` | Khoản thanh toán thất bại vì tài khoản không cho phép ghi nợ. |
| `000444444440` | `110000000` | Khoản thanh toán thất bại do đơn vị tiền tệ không hợp lệ. |
| `000555555559` | `110000000` | Khoản thanh toán thành công, sau đó phát sinh dispute. |
| `000000000009` | `110000000` | Khoản thanh toán ở trạng thái processing vô thời hạn. Sử dụng trường hợp này để kiểm thử giao diện trạng thái pending. |

<Note>
  Các khoản thanh toán kiểm thử đạt trạng thái cuối cùng nhanh hơn nhiều so với các khoản thanh toán thực tế, vì vậy bạn không cần chờ nhiều ngày để xác minh tích hợp. Ngoại lệ là `000000000009`, trường hợp này vẫn ở trạng thái processing.
</Note>

## Thực tiễn tốt nhất

<AccordionGroup>
  <Accordion title="Don't fulfill on authorization">
    Việc ủy quyền ACH không phải là một khoản thanh toán. Hãy chờ khoản thanh toán chuyển sang trạng thái succeeded trước khi cấp quyền truy cập hoặc giao hàng. Ngân hàng của khách hàng vẫn có thể hoàn trả khoản ghi nợ.
  </Accordion>

  <Accordion title="Set customer expectations at checkout">
    Thông báo cho khách hàng rằng các khoản thanh toán qua ngân hàng không được clearing ngay lập tức. Điều này giúp giảm số lượng ticket hỗ trợ hỏi tại sao đơn hàng vẫn đang pending.
  </Accordion>

  <Accordion title="Provide card fallbacks">
    Đưa `credit` và `debit` vào cùng với `ach` để những khách hàng cần truy cập sản phẩm ngay lập tức có thể chọn phương thức nhanh hơn.
  </Accordion>

  <Accordion title="Use ACH for high-value one-time purchases">
    Phí ACH được giới hạn ở mức \$15, vì vậy khoản tiết kiệm lớn nhất áp dụng cho các giao dịch mua một lần có giá trị lớn.
  </Accordion>
</AccordionGroup>

## Khắc phục sự cố

<AccordionGroup>
  <Accordion title="ACH not appearing at checkout">
    **Kiểm tra:**

    1. Đơn vị tiền tệ thanh toán có phải là `USD` không?
    2. Quốc gia thanh toán của khách hàng có phải là `US` không?
    3. `ach` có được đưa vào `allowed_payment_method_types` không?
    4. Đây có phải là khoản thanh toán một lần không? ACH không được cung cấp cho subscriptions.
    5. Số tiền có ít nhất là \$0.50 không?

    **Giải pháp:** Tạm thời xóa `allowed_payment_method_types` để xem tất cả các phương thức đủ điều kiện, sau đó kiểm tra đơn vị tiền tệ thanh toán và quốc gia của địa chỉ thanh toán trong API request của bạn.
  </Accordion>

  <Accordion title="ACH not appearing on a subscription checkout">
    **Nguyên nhân:** ACH Direct Debit chỉ được cung cấp cho các khoản thanh toán một lần.

    **Giải pháp:** Sử dụng thẻ hoặc một phương thức khác hỗ trợ gói đăng ký cho các khoản thanh toán định kỳ.
  </Accordion>

  <Accordion title="Payment stuck in processing">
    **Nguyên nhân:** Đây là hành vi dự kiến. Khoản thanh toán ACH vẫn ở trạng thái processing trong toàn bộ thời gian clearing, lâu hơn nhiều so với khoản thanh toán bằng thẻ.

    **Giải pháp:** Chờ webhook cuối cùng. Không thử lại khoản thanh toán, vì thao tác thử lại có thể ghi nợ khách hàng hai lần.
  </Accordion>

  <Accordion title="Payment failed after initially succeeding at checkout">
    **Nguyên nhân:** Checkout đã hoàn tất nhưng ngân hàng của khách hàng đã hoàn trả khoản ghi nợ trong quá trình clearing, thường là do không đủ tiền hoặc tài khoản đã đóng. Khoản thanh toán phát ra `payment.failed`.

    **Giải pháp:** Xử lý khoản thanh toán như một khoản thất bại và yêu cầu khách hàng thanh toán bằng phương thức khác. Chỉ thực hiện đơn hàng khi khoản thanh toán ở trạng thái succeeded để tránh tình huống này.
  </Accordion>
</AccordionGroup>

## Các trang liên quan

<CardGroup cols={2}>
  <Card title="Payment Methods Overview" icon="credit-card" href="/features/payment-methods">
    Xem tất cả phương thức thanh toán được hỗ trợ.
  </Card>

  <Card title="Adaptive Currency" icon="globe" href="/features/adaptive-currency">
    Các đơn vị tiền tệ được hỗ trợ và tính năng chuyển đổi tự động.
  </Card>

  <Card title="Checkout Guide" icon="book" href="/developer-resources/checkout-session">
    Hướng dẫn triển khai checkout đầy đủ.
  </Card>

  <Card title="Webhooks" icon="webhook" href="/developer-resources/webhooks">
    Xử lý không đồng bộ các xác nhận thanh toán bị trì hoãn.
  </Card>
</CardGroup>


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