In general, 30% is the magic number that should cover the cost of transactions, time, interests, management and expertise.
20% is a bit borderline since you need to sometime pay for the exchange rate, the credit processing, taxes, and charging the client also count as a revenue.
Elance used to charge close to 9% per project, and then the transaction in a Paypal or merchant account could be between 2% to 6%; you're already at 10-15%. Of course, this depends on your own payment system and tools you use. Maybe you use an invoicing system and/or accountant; this has a cost. Sometimes, there's a fee to transfer back the money to you, and something there's a currency exchange rate that is usually around 2.5% + the value of the currency. Your bank probably also charges you a fee per transaction. And your time has a value too even if you spend only 10 minutes to purchase something. On top of this, even though you can benefit from a tax credit on the product/service you purchased, you will still pay taxes on that revenue depending where you live and it might even put you in a higher bracket where the percentage of tax is higher too.
The best is to calculate all these transaction fees even if you don't need to pay them all the time. Keep in mind that buying stuff for your client is an extra service you offer, almost like a loan; you can always offer them to purchase the product themselves, sometimes it's also easier to manage the licenses, subscriptions and updates this way.
So when you get repaid for something you purchased, make sure you make a REAL profit on this and that it's worth it for you. At 30% you usually get a good margin for this and you don't waste your time with little 5% profits. For projects like printing, you should make sure you keep at least 10% for yourself.