There were a few problems that I encountered. Blockchain.info is focused on consumer and their API is structured to back their consumer facing sites. As such, they have no testnet support. This is a deal breaker. Because that means, any integration tests come at a tangible financial cost.
Furthermore, their API has always been a documented internal API rather than a public one. That meant, there is no versioning on the API and they sometimes make breaking changes without deprecation notice. The lack of versioning caused a bit of issues.
And in general, I found the API is set up in a way that is, frankly, a bit strange. For example, instead of a status code of 400 for an client side error, they generate a 200 status code with an error text in the body. That also caused issues for debugging and error handling too.
In the end, the various quirks finally led us to build this API.
They offer a free service where you can give their API a destination address and a webhook and they'll give you back a individual deposit address.
You can then give that deposit address to your customer. In theory, the customer is supposed to make the payment, Blockchain.info sees the transaction, notifies your webhook, and forwards the payment to the destination address.
The problem is that the system that looks for the transactions sometimes doesn't see them for hours and the webhook isn't notified until the payment is swept.
For example, one of my customers transactions was this one. https://blockchain.info/address/1PD8c6fjiYT4Hdq3SFavLBGNgV1B...
The money was received but it took 2 hours and 15 minutes for my webhook to be notified that payment was received and for it to be forwarded. In the meantime, the customer who was told that the transaction would be approved after 1 block confirmation was furious.
This seems to happen about 30% of the time with their API.
But more generally I wonder why people are doing this. If your app really needs indexed access to the entire block chain, you probably designed it wrong. If your app doesn't, then you could as well use local software.