Oak Node has it since more than a year. Runs on Umbrel, so non-custodial.
Also supports setting a specific text in the recurring payments description (ending up in the invoice memo), so the service provider receiving those payments can assign those payments to a subscription with minimal effort.