I used to work in the merchant services industry up until a couple of years ago so if you are in the US I can tell you about how that would work here.
For starters you will not be able to get a true merchant account for this purpose. Accepting credit card payments on behalf of other businesses is called factoring and is a major no-no. The general rule is one business = one merchant account. If you are caught factoring you may be given a chance to stop and get merchant accounts for each of the other businesses. If you continue to factor, or factored on a large scale that you weren't even given a chance to open new merchant accounts, you and your business will be placed on the Match File, also known as the Terminated Merchants File. This essentially is a black list honored by all of the major credit card issuers and will prevent you and your business from ever having a true merchant account again. Notice I said you and your business. They put individuals on the TMF file so they can't just go and open a new merchant and do it again. Ever. If you are wondering how they would catch you it would most likely be through chargebacks. Since it is your name that will appear on a customer's bank statement they will not recognize the purchase and attempt to charge it back. Besides exposing your factoring and putting you at risk for the TMF you will also incur chargeback fees which will eat away at your profits (and you will also lose the chargeback and that money).
So each business you wanted to accept payments for would have to have their own merchant account to receive payments which probably is not what you're looking for. But, if that is a possibility for you then you can do something like this:
- Have each business get their own merchant account and payment gateway account (ideally they would all use the same payment gateway for simplicity's sake). They provide you with the API information necessary to integrate the payment gateway into a website.
- Have the orders come through your system and they are logged accordingly.
- The payment goes through the business' merchant account which is done dynamically through coding on your end (basically you supply the appropriate API credentials for that business)
- At a predetermined basis (e.g. monthly) you bill them for the fees they incurred during that billing period
The biggest issue you will have with that scenario is you'll have to chase the businesses for the money they owe you instead of already having it in hand and paying them what they are owed.
As far as charging your "partners" a regular merchant account would be just fine. You could use a recurring billing service like Authorize.Net's Automated Recurring Billing API to handle the subscription payments for you.
Email invoicing isn't difficult. If you didn't want to write your own there are plenty of invoicing software available for you to use.
If you are going to accept credit card information on your website at the very least you will need an SSL certificate installed to ensure the connection is secure and that sensitive data is encrypted. You'll also need to be aware of PCI compliance issues which will vary depending on exactly how you plan to implement everything. If there's anything to know right off the bat it is don't store any credit card information on your server. That makes things dicey and is just a bad idea to get involved with it.