We use Braintree (http://braintreepaymentsolutions.com/) as our credit card gateway and merchant account. I can't say enough good things about them... they're one of the rare companies now that offers an excellent product and excellent service. (Although I sound like an advertisement, I get nothing from them for saying that. :)
Our system interacts with their API when people sign up, and for recurring billing, we implemented a simple nightly process that also uses their API.