Receive payments in BTC or USD, but get paid in Bitcoin? I need to receive payments on my site. I wish to give users the option to either send money in bitcoins or US Dollars.
However, I always want to get paid out in bitcoins. So I need to have an auto-converter for the USD payments to my Bitcoin account.
Is there a service that offers such an option, preferably with an API?
NO . . .  you cannot sell Bitcoins to a customer to pay yourself Bitcoins.  They - the  customer need to buy Bitcoins to have ready to pay for the website item and you need to send a bitcoin price and address to them based on a price you have converted to bitcoin from USD.  

The question whether you want to keep the bitcoin as bitcoin will be determined by whether the price of bitcoin is rising or falling.  

It is not as easy as you think - our website accepts bitcoin - and we have to cancel the order in a given time frame because the price of bitcoin keeps changing so fast - and either we would loose or the customer would be be pissed because they pay at the quoted rate and by the time they do pay it has gone up - and then they want "change" back based on the time they pay.  

Yes . . . there are API's yes - and it is a complicated process to use them because of just what I said above - and you need to be a database programmer in some language like PHP etc to write the code for your site usually becasue cron is going to be involved and you will need elevated privileges an "el cheapo website from GoDaddy or Hostgator etc will not have and even their VPS packages normally will not do - and it matters then whose exchange you are tied to by the API you use because their prices vary even between the current pricing