Create addresses in bulk; and check balance I am new to Bitcoin; our company wants to use bitcoin for payments.

We need to create a address for each transaction. so we need to create many public address.

First, I need to generate many public and private key-pairs. This is going to be very hard to do in a secure way!

I read another question that said with hierarchical deterministic wallets we can do something like creating one key-pair and generate many public address from it (means one private key can have many public key).

So if it really do!: Do we need to keep all of public keys or just can use private key for transaction bitcoins or checking balanced? or the other public keys are child key and i should keep the first mother public key?


Can someone else see how much bitcoin we have earned?  


just with child-address?  
if she/he get the master public key, can they check our balance?  



We want to use Lazy_API and show user an address to use it for transaction and after that check it with blockchain.info json api or blockexplorer, if transaction done after number of confirmation we proceed invoice and they can access to what they want.

Something else: some mobile wallet(like Breadwallet.com for iOS) said that they change public address after current get received bitcoins! Does they create new key-pairs or just do something like above?
As you found out already; private and public keys are not necessarily paired 1-to-1. In fact, using the original Bitcoin client you can just run the getnewaddress to generate a new address belonging to your wallet, which is controlled by only one private key.