Let's say I want to charge 100 Euro and I want to receive in Ethereum, is there an easy way to convert that into eth? Does the API allow me to do that?
When you make a request to create a new payment address you don't specify the amount, the API will forward any amount received (equal or above the minimum) on that address to you.
If you want to request an amount in Euro (or any other FIAT currency) the best way is to use a free price ticker API to get the current price and then do some simple math.
For instance, you can use the Coinmarketcap API:
https://api.coinmarketcap.com/v2/ticker/1027/?convert=EURget the price (675€) and just do: 100€ (the amount you want) / 675€ = 0.148148148148 eth
Save that amount on your database (along with the invoice) and then tell the user to send that amount to the address.
Then, on your callback logic, just check if the amount sent is 148148148148000000 (0.148148148148 in Wei), and, if so, validate the user's purchase.
Keep in mind that, on the callback request, we send the values in the smallest units of the coin to make it easier, so the values will be sent in Satoshi, Wei and IOTA, not in Bitcoin, Ether or Miota.
Also, beware that those price ticker APIs may have request limits, the Coinmarketcap one shown above asks that you do not make more than 10 requests a minute, which may be not enough if you have high demand. In that case you can create your own price cache, where you poll the API for prices every 5 minutes or so and update the prices on your database. When making a request just check the latest price for that coin on your database.