A new card now really replaces the old one on a failed membership payment
When a membership renewal fails and a member (or you) picks or adds another card, that card is now the one the membership charges — this time and every month after. Retries no longer hit the old card, and a payment that Stripe had closed no longer ends in "try again later".
Until today a member whose membership payment failed could add a new card and still be charged on the old one: the new card only became the default on their customer record, while the membership kept charging the card it was set up with. Retrying "Pay now" then failed again, and after Stripe closed the failed attempt every retry answered "try again later". Now: - **The chosen card is the membership's card.** When a member picks or adds a card and pays, or when you retry a failed payment with a chosen card from the client's Billing tab, that card is set on the membership itself and on the customer, and the open renewal is paid with it. Later renewals use it too. - **No more dead end.** If Stripe had closed the failed attempt, the platform now reads the invoice and answers honestly: paid, still processing, waiting for the member's bank, or "choose another card". - **Your websites and the app** can pass the chosen card to the same payment (`payment_method_id`); until they do, the member's saved default card is used as before. Nothing changes for memberships whose payments succeed.
Changing a class's instructor, room, time or capacity works again
Since 23 September, saving a change to a single class (instructor, substitute, room, time, capacity, bulk edit) failed with an error on the web schedule and in the Business app. Fixed; nothing you saved was lost.