From the Active Invoices screen, Admins can select multiple invoices and use the Charge card/ACH toolbar action to process payments in bulk against stored customer payment methods.


How Bulk Charging Works

When you select a group of invoices and initiate a bulk charge, the system executes the following process:

  1. Duplicate Prevention:
    • 
    The system automatically filters out and skips any invoice with a status of Paid to prevent duplicate charges.
    • 
    Duplicate occurrences of the same invoice within a single batch are automatically deduplicated so each invoice is charged only once.
  2. Sequential Execution: The server processes each customer transaction sequentially.


System Safeguards & Protections

To keep bulk charging reliable and safe, several background safeguards are in place:

  • Button Debounce: Primary charge buttons in both the Admin Console and Customer Portal automatically disable upon clicking to prevent double-submits.
  • Gateway Timeouts: Strict connection and execution timeouts (5 to 30 seconds depending on the gateway) are set for all external payment processors to prevent hung requests.
  • Automatic Table Redraw: Following a batch run (including mixed-result batches), the Active Invoices table automatically updates so successfully processed items immediately reflect their Paid status.


Best Practices & Usage Tips

Because server processes enforce an execution window per request, follow these guidelines for smooth processing:

  • Process in Moderate Batch Sizes: Very large batches (e.g., 100+ invoices) can exceed the server's time limit. Breaking large payment runs into smaller, manageable batches ensures faster, more reliable completions.
  • Do Not Refresh or Click Repeatedly: Avoid clicking the charge button multiple times or reloading the page during an already processing transaction. Payment processing continues sequentially on the server even if the browser spinner is active.
  • Troubleshooting Timeouts or Error Messages: If a batch times out or encounters a network error before finishing:
  1. Refresh the Active Invoices list: Any invoice that was successfully charged before the timeout will update to Paid and will automatically be skipped on subsequent runs.
  2. Check the Payment Log: For any invoice still showing as unpaid, verify its status in the Payment Log before attempting to re-charge. This prevents accidental double-charging in rare cases where a gateway approved the transaction but the web browser lost connection before receiving the confirmation.