# Bank Pay-ins

URL: https://doc.securepayapi.com/bank-payins
Last updated: 2026-11-06

> Let customers pay eligible hosted invoices by ACH debit, ACH transfer or wire.

Eligible hosted invoices can offer ACH debit, ACH transfer and wire alongside
their other enabled payment methods. Ask your platform operator to confirm the
methods available for your merchant and environment, then share the issued
invoice payment URL. This is a hosted invoice workflow, separate from the
[Payment Intents API](https://doc.securepayapi.com/payment-intents) and [JavaScript SDK](https://doc.securepayapi.com/sdk).

## Customer experience

- **ACH debit:** the customer enters bank details and affirmatively accepts
  the displayed one-time debit authorization before submitting.
- **ACH transfer or wire:** the customer sends funds from their own bank using
  the exact receiving account, rail, reference and total displayed on the page.
  Transfer rails can have different fees and instructions.

Keep the invoice URL so the customer can return to its pending status and
instructions. Once a bank attempt is pending, do not start a competing payment.
Use the cancellation choice only for a pending transfer whose funds have never
been sent; it is not a recall of money already sent or an ACH debit reversal.

## Payment confirmation

Receiving instructions or submitting a debit does not mean the invoice is paid.
Confirm the invoice/payment result from your merchant backend before fulfilling
the order. Matching funds, returns and holds are distinct outcomes.

Merchant teams using the private direct integration can follow
[Bank Pay-ins](https://doc.securepayapi.com/private/bank-payins) and [Invoices](https://doc.securepayapi.com/private/invoices) for the
server contract. Keep merchant secrets out of customer pages and invoice URLs.
For token-funded invoices, see [USDC pay-ins](https://doc.securepayapi.com/usdc-payins).
