💱 Currency exchange rates library
Branch: master
Clone or download
Latest commit 6fe0608 Feb 19, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc fixed exchange Feb 19, 2019
src Adding some tests related to psr17 and psr18 changes Feb 11, 2019
tests Adding some tests related to psr17 and psr18 changes Feb 11, 2019
.editorconfig Added Scrutinizer Aug 21, 2016
.gitattributes Update .gitattributes Aug 21, 2016
.gitignore Starting to work on 4.0 version Jan 4, 2019
.php_cs.dist Added php-cs-fixer config Jun 3, 2017
.scrutinizer.yml Update Scrutinizer Aug 21, 2016
.styleci.yml Improved the README Aug 21, 2016
.travis.yml Updated obsolete travis config Jan 5, 2019
CHANGELOG.md Updated the CHANGELOG Feb 12, 2019
LICENSE Updated copyright year Jan 4, 2019
README.md
composer.json Updated exchanger version Feb 11, 2019
phpunit.xml.dist

README.md

Swap

Build status Total Downloads Scrutinizer Version

Swap allows you to retrieve currency exchange rates from various services such as Fixer, currencylayer or 1Forge and optionally cache the results. It is integrated to other libraries like moneyphp/money and provides a Symfony Bundle and a Laravel Package.

QuickStart

$ composer require php-http/curl-client nyholm/psr7 php-http/message florianv/swap
use Swap\Builder;

// Build Swap
$swap = (new Builder())

    // Use the Fixer.io service as first level provider
    ->add('fixer', ['access_key' => 'your-access-key'])
     
    // Use the currencylayer.com service as first fallback
    ->add('currency_layer', ['access_key' => 'secret', 'enterprise' => false])
     
    // Use the 1forge.com service as second fallback
    ->add('forge', ['api_key' => 'secret'])
     
->build();
    
// Get the latest EUR/USD rate
$rate = $swap->latest('EUR/USD');

// 1.129
$rate->getValue();

// 2016-08-26
$rate->getDate()->format('Y-m-d');

// Get the EUR/USD rate 15 days ago
$rate = $swap->historical('EUR/USD', (new \DateTime())->modify('-15 days'));

We recommend to use the services that support our project, providing a free plan up to 1,000 requests per day.

Documentation

The documentation for the current branch can be found here.

Sponsors 😍

We are proudly supported by the following exchange rate providers offering free plans up to 1,000 requests per day:

Fixer

Fixer is a simple and lightweight API for foreign exchange rates that supports up to 170 world currencies. They provide real-time rates and historical data, however, EUR is the only available base currency on the free plan.

currencylayer

Currencylayer provides reliable exchange rates and currency conversions for your business up to 168 world currencies. They provide real-time rates and historical data, however, USD is the only available base currency on the free plan.

1Forge

1Forge provides Forex and Cryptocurrency quotes for over 700 unique currency pairs. They provide the fastest price updates available of any provider, however, they don’t support smaller currencies or historical data.

Services

Here is the list of the currently implemented services:

Service Base Currency Quote Currency Historical
Fixer EUR (free, no SSL), * (paid) * Yes
currencylayer USD (free), * (paid) * Yes
1Forge * (free but limited or paid) * (free but limited or paid) No
European Central Bank EUR * Yes
National Bank of Romania RON * Yes
Central Bank of the Republic of Turkey * TRY Yes
Central Bank of the Czech Republic * CZK Yes
Central Bank of Russia * RUB Yes
WebserviceX * * No
Cryptonator * Crypto (Limited standard currencies) * Crypto (Limited standard currencies) No
CurrencyDataFeed * (free but limited or paid) * (free but limited or paid) No
Open Exchange Rates USD (free), * (paid) * Yes
Xignite * * Yes
Currency Converter API * * Yes (free but limited or paid)
Array * * Yes

Integrations

Credits

License

The MIT License (MIT). Please see LICENSE for more information.