Você vai querer usar a API /rawaddr/ do Blockchain.info.
Exemplo:
https://blockchain.info/rawaddr/13CxYv3Yks3E1PLWQR8uGcfwsSZ6eAqYMVFaz um loop por todas txs[].
Para cada txs[], procura se existe algum txs[].out[].addr = seu endereço (13CxYv3Yks3E1PLWQR8uGcfwsSZ6eAqYMV)
Se encontrar, pega todos os txs[].inputs[].addr e pega quanto seu endereço recebeu txs[].out[].value
Assim você tem todos os endereços de entrada, que estão em uma transação que mandaram alguma coisa para seu endereço.
O resultado vai ser algo como:
Horario (que o blockchain recebeu a transacao) = txs[].time
Endereços de entrada = txs[].inputs[].addr que voce guardou
Total recebido no seu endereço nessa transação = txs[].out[].value
Não use o txs[].inputs[].value porque esse não é o valor que você recebeu.
Para funcionar 100%, voce precisa percorrer todos os txs[].out[] mesmo depois de encontrar seu endereço. Você pode ter uma transação com 50x o mesmo endereço de output. Não faz sentido, mas pode.
Espero que ajude - para eu escrever o código, vamos precisar rachar quanto seu cliente tá pagando
