This processor is extremely simple to set up and it provides plenty of options for how you can set it up depending on your requirements. Whether it will meet your technical requirements depends on whether any of the limitations in the system are going to be issues for the way you intend using it. Whether you will be allowed to use it even if it does meet your technical requirements also depends on what you want to use it for.
This payment processor is very simple for any programmer to set up. It can also be easily customised to integrate into any web site that needs to collect credit card payments (note you should check their terms for what types of site they actually permit it to be used with). Their site provides plenty of examples of how to set up scripts to perform most of the different processes you are likely to want (except for reconciliation). All the server side code is presented in several different server side languages. The examples are included in Ruby, Python, PHP and Node while the reference guide also includes curl, Java and Go.
For one off use you simply use the single use token to generate a charge. Supplying the token to a charge associates the charge with the credit card that generated the token and allows the payment to be processed provided that the credit card information is considered to be valid. Once a token has been used once, it cannot be used again. To allow multiple charges to be applied without having to collect the credit card details each time you can use the single use token to create a customer. You can then attach as many authorised charges to the customer as are needed without having to collect their credit card details again.
You can attach additional information to customers and charges to make it easy to identify both customers (for example name and address details) and charges (for example what is being paid for). The Stripe control panel then allows you to see all the charges in the order they were made or to go via the customers and see the charges applied to a specific customer.
To see the transfer part of the system work in the test system you need to enter bank account details. Unlike with the credit card details where they provide dummy card numbers for testing they do not provide dummy bank account details for testing so you just have to experiment until you find a bank account number that works. While the transfers screen displays all the charges included in a particular transfer there is no facility for exporting this information to allow the transaction to be reconciled properly on the bank account without having to enter all the details over again.
In addition to customers and charges there are also a number of ways to process regular charges. Subscriptions can be set up where charges are applied regularly based on a plan that you define. If the provided subscription processing doesn't meet your requirements (such as you wanting to process all subscriptions on a specific date rather than using the anniversary of the start date) then you can set up your own processing instead.
Webhooks provide a way for Stripe to send information about events to your server where the event was initiated at Stripe rather than on your site. You can set up a script on your site that will be called every time that an event occurs. The transfer of money to your bank account is one such event but the information passed only tells you how much was paid and does not include anything to identify which charges are included.
While I was testing this processor I sent three requests to support. The first was a query about annual processing of cards with the owners permission. I got a reply the next day that the subscription option couldn't handle processing on a specific date but that it could be set up as I suggested using a cron job. The second question was about the information they require so that a live account can handle a significant number of manually entered transactions in the first few days of operation without the payments being held beyond the expected payment date. It took a week before I got a reply to this one and then the reply suggested that processing credit card details sent through the post by people who don't own a computer was unlikely to meet their criteria for processing. The third was about matching charges to payments. I was eventually advised after a couple of emails back and forth that a bank account needed to be attached for the test system to process transfers. I then attached a bank account (I have no idea whose - I just kept changing the bank account details until I found a combination it would accept) and then the transfers showed up along with the details of which payments were included in each. Unfortunately transferring this information across to reconcile the payments is a manual one as there is no way to export the transfer information (accountants must make a fortune out of Stripe customers with the time required to reconcile the transfers).
This payment processor is far more flexible than any of the others I have looked at and is at least technically capable of being able to work for many situations that other payment processors can't handle. Of course even if this processor does meet all of your technical requirements does not necessarily mean that it will meet all of your other requirements as there is a lot more to collecting payments via credit card than just being able to set up a payment processor. On the other hand I asked three questions through their support service and while all of them got answered eventually the answers could all be summarised as "Stripe can't do that or wont let you do that". As far as processing credit card transactions where the person making the payment has access to a computer is concerned Paypal is a far superior alternative.