Payments

Subscriptions should charge the contact's default payment method, not a pinned payment method ID
Problem: A subscription binds permanently to the specific payment method ID it was created with. If that method is later deleted or replaced, the subscription fails with "Transaction was rejected by gateway. Invalid Billing Id" — even when the contact has a valid payment method on file. Verified in our account (NMI gateway): a contact had a card and a bank account vaulted. We deleted the card. The nightly subscription charge failed with Invalid Billing Id, despite an active ACH method being present on the contact. There is no way to re-point the subscription — not in the UI, and no API operation exists for updating a subscription's payment method. This behavior already exists elsewhere in HighLevel. Recurring invoice schedules support autoPayment: { type: "customer_card" }, which stores no payment method ID and resolves the customer's method at charge time. Subscriptions should do the same. The gateway supports it too — NMI's Customer Vault holds multiple billing records per customer with a priority/default. Why this matters: clients change payment methods routinely — expired cards, new banks, switching from card to ACH. Every other billing platform we've used (WHMCS, Stripe Billing) charges the customer's default method automatically; Stripe falls back to the customer's default_payment_method when a subscription-level one isn't set. In HighLevel, each change requires the business owner to manually intervene, or the subscription silently fails. At 120+ recurring clients this becomes a significant support burden and a revenue-loss risk. Requested (any one of these would solve it): Subscriptions charge the contact's default payment method at charge time (same as customer_card on recurring invoices). When a contact adds or updates a payment method, automatically re-point their active subscriptions. At minimum: expose an API endpoint to update a subscription's payment method, so this can be automated.
0
·
Enhancement
Load More