I am travelling to USA for a stay about 1 year. I have recently opened an account in the bank of America. Now I want to deposit some cash for my stay in the same account. Please let me know the best possible way I can deposit my liquid INR to US$ in the bank of America account.
TL;DR: If you have < $1000 - < $2000 worth of money, use a travel card (you can easily get one from Axis Bank) otherwise use a wire transfer for either your Bank Account or from a Forex Service.
I happen to have a BoA account as well, so I do this quite often. In India, in order to transfer money to the US, you have three options,
Use your local bank in which you have an account with all that money in it. If you have most of your money in cash, then your best bet is to deposit this in an account because that's what they will need in order to wire transfer to BoA. This would ideally be the easiest way if your money is already in a bank account. Axis Bank is one of the better bank which you could do this with, because they provide a lot of forex services such as travel cards and all as well.
Use remittance services with a leading foreign exchange service such as Thomas Cook. They might be willing to take cash as well but they might require you to write them a check from a bank account. If you absolutely want to use cash, I think a PAN Card would be required in order to make sure that the cash can be associated to your account for taxation purposes.
Get a free travel card with Axis Bank or any other service and load that with all your money in it and make a withdrawal using any ATM in the US and deposit all the money in your BoA account using the Travel Card.
Now, let's talk about the costs,
Unforunately this depends more on your negotiation skills that anything else, for a small amount i.e < $1000, carrying in your Travel Card would be a better option, otherwise, using one of the two services I mentioned is better.
Now, I have gotten better rates from the bank as well as 3rd party dealers with respect to Forex Bank Transfers but typically for larger amounts i.e > $10000 you are looking at an additional rate of about 0.3 - 0.5%. For the travel card, the rate is usually 1% is the norm.
Note: BoA will charge you about $12 for an incoming wire transfer whereas the banks I mentioned might charge you a flat fee of about $10 or Rs. 500 for both travel cards and wire transfers. As you might expect, these depend on the Bank/Forex Service. If you carry the travel card and you withdraw money from the card, a fee of $2 is usually charged by the withdrawing ATM (in this case a BoA ATM) and of course to deposit the money into your account, (maximum of $800 per transaction in both cases i.e if you have more, then you need to withdraw and deposit multiple times).
Lastly, what documentation do you require,
Simple, all you need is the Swift Code (For BoA USD trasfers BOFAUS3N) of the bank and the Bank Account (either Checking or Saving, any one is OK) number you wish to transfer to and although not required, but the branch of the bank will be additional information which won't hurt. Basically any information which is required to uniquely identify the transaction to your unique account.
To add, I would be highly surprised if you carried a major amount of money outside India in INR. This is not allowed as per the FEMA act and is clearly mentioned on the Reserve Bank of India Website FAQ,
Residents are free to take outside India (other than to Nepal and Bhutan) currency notes of Government of India and Reserve Bank of India notes up to an amount not exceeding Rs. 10,000 - per person.
More information about the same has also been discussed earlier on this website, check this question, Is it really forbidden to cross the Indian border with Indian rupee?
In case you did though, there is not much you can do with it, because it is ultimately illegal and if you turn up with that sum of money in Indian Rupees anywhere outside India, you will turn heads and you risk confiscation of that money.
If you are still in India, then have your bank wire the funds to your account in the USA. Not sure what all your bank in India might require, but usually it is the SWIFT code for BoA, your account number and perhaps the branch your account was opened at.
If you are in the USA already, take your cash to the bank. When I had an account at BoA, they would accept foreign cash for deposit in my account. It usually took a few days before being fully credited as they had to send the currency to their foreign exchange center and the exchange rate was determined the day it actually made it there.