You can create a database of promo codes and their values and then look up the entered promo code and set a session variable for the coupon value. Then use the coupon value session variable to create a discount in the cart.
Ecart supports recurring payments through paypal. Is that the payment gateway you are using? If so, just get it working for a single payment and we can update that to use recurring during our session.