BitPay has relationships with many bitcoin exchanges around the world, but we only utilize exchanges which meet our operational and regulatory requirements. When calculating our exchange rates for BitPay invoices, we only incorporate rates of bitcoin exchanges which meet our regulatory, operational, and market depth requirements.
To calculate the exchange rate for US Dollars, we typically pull the market depth from an exchange with adequate liquidity and reliable withdrawal capabilities in the USA and Eurozone. We factor "slippage" into our exchange rates, which means that the larger the value of the invoice, the lower the exchange rate. Slippage is usually only noticeable on very large invoices.
We set exchange rates for non-USD currencies indirectly using the Open Exchange Rates API. In the future, as Bitcoin markets in non-USD currencies mature, BitPay will use those markets directly.
The BitPay exchange rate is available via JSON API.