Skip to content
Last updated

Recipe: ACH for invoices

When to use ACH for invoices

  • B2B payments where customers pay by bank transfer
  • Recurring invoices (rent, subscriptions, memberships)
  • High-value transactions where card fees would be significant

Flow

Customer's BankParadise GatewayMerchantCustomer's BankParadise GatewayMerchantInvoice generatedPOST /v1/payment_tokens (tokenize bank account)payment_tokenPOST /v1/transactions (bank_account_payment)approved (pending settlement)ACH debit initiatedSettled (2-3 business days)
Customer's BankParadise GatewayMerchantCustomer's BankParadise GatewayMerchantInvoice generatedPOST /v1/payment_tokens (tokenize bank account)payment_tokenPOST /v1/transactions (bank_account_payment)approved (pending settlement)ACH debit initiatedSettled (2-3 business days)

Step 1: Tokenize the customer's bank account

Store the customer's bank account once. Use the token for all future invoice payments.

curl -X POST \
  https://api.dev.paradisegateway.net/v1/payment_tokens \
  -H "Content-Type: application/json" \
  -H "APIKEY: YOUR-API-KEY" \
  -d '{
    "customer_id": "CUSTOMER-01KFDKXMQ637EKEAY410MSQSXB",
    "nickname": "Acme Corp Checking",
    "bank_account": {
      "routing_number": "021000021",
      "account_number": "123456789012",
      "account_type": "checking",
      "name": "Acme Corporation",
      "email": "ap@acmecorp.example.com"
    }
  }'

Step 2: Process the invoice payment

When the invoice is due, debit the customer's bank account using the stored token.

curl -X POST \
  https://api.dev.paradisegateway.net/v1/transactions \
  -H "Content-Type: application/json" \
  -H "APIKEY: YOUR-API-KEY" \
  -d '{
    "type": "sale",
    "amount": 250000,
    "payment_method": {
      "type": "payment_token",
      "payment_token": "PAYMENT_TOKEN-02LGEHBA0BZSPA6WRY1T3H4CD"
    },
    "metadata": {
      "invoice_id": "INV-2026-0042"
    }
  }'

Step 3: Track settlement

ACH transactions settle in 2–3 business days. Poll the transaction or check batch status to confirm.

curl https://api.dev.paradisegateway.net/v1/transactions/TRANSACTION-01KEW32V6YNV11T33XGDR7TGWC \
  -H "APIKEY: YOUR-API-KEY"
StateMeaning
authorizedACH debit submitted to the network
completedFunds transfer completed
settledFunds deposited to your account
failedACH return received (see ACH returns)

ACH vs. card payments for invoices

FactorACHCard
Processing feeFlat fee (lower)Percentage + flat fee (higher)
Settlement time2–3 business daysNext business day
ChargebacksACH returns (limited window)Card disputes (longer window)
Best forHigh-value, recurring B2BConsumer, low-value

Best practices

  • Store the token once — reuse for every invoice to avoid re-collecting bank details
  • Use metadata — attach invoice_id for reconciliation
  • Handle returns — ACH debits can be returned for up to 60 days. See ACH returns
  • Notify the customer — send an email when the debit is initiated and another when it settles

Next steps