PHPackages                             spatian-dev/firefly-iii-xchange - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. spatian-dev/firefly-iii-xchange

ActiveLibrary[API Development](/categories/api)

spatian-dev/firefly-iii-xchange
===============================

An exchange rates API services integration for Firefly III

v0.1.0(3mo ago)02Apache-2.0HTMLPHP ^8.4CI passing

Since Jan 29Pushed 3mo agoCompare

[ Source](https://github.com/spatian-dev/firefly-iii-xchange)[ Packagist](https://packagist.org/packages/spatian-dev/firefly-iii-xchange)[ Docs](https://firefly-iii-xchange.spatian.dev)[ RSS](/packages/spatian-dev-firefly-iii-xchange/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (3)Versions (2)Used By (0)

💱 Firefly III Xchange
=====================

[](#-firefly-iii-xchange)

**An exchange rates API services integration for Firefly III**

Firefly III Xchange is a Laravel package that enhances [Firefly III](https://github.com/firefly-iii/firefly-iii) with automated exchange rate support. It connects to external exchange rate providers and makes up-to-date currency data available to a Firefly III installation.

### 🚀 Features

[](#-features)

- 📊 Fetches current exchange rates from configurable API services
- 💸 Seamless integration with Firefly III’s currency system
- 📦 Easy setup in a Firefly III instance
- ⚙️ Simple yet flexible configuration for selecting rate providers

📦 Installation
--------------

[](#-installation)

Installation is easy. Simply navigate to your self-hosted Firefly III installation folder and run the following command

```
composer require spatian-dev/firefly-iii-xchange
```

> 🛠️ For now, only self-hosted instances are supported. We're looking to add support for containerized deployments. Contributions are welcome, please visit the [Contributing](#contributing) section below.

⚙️ Configuration
----------------

[](#️-configuration)

After installation, configuration is easy via the `.env` file.

> 🧑🏻‍💻 **For Advanced Users And Developers**
> Although all settings right now are configurable directly in your `.env` file, you can also publish the package’s settings
>
> ```
> php artisan vendor:publish --provider="Spatian\FireflyIIIXchange\Providers\FireflyXchangeServiceProvider" --tag=config
> ```

### Firefly III Personal Access Token

[](#firefly-iii-personal-access-token)

In order to update the exchange rates in your Firefly III administration, a personal access token (PAT) must be configured.

```
XCHANGE_FIREFLY_TOKEN=
```

You can create and manage PATs in your Firefly III administration panel. Consult the [Firefly III documentation](https://docs.firefly-iii.org/how-to/firefly-iii/features/api/#personal-access-tokens) for more details.

### Default Exchange Source Currency

[](#default-exchange-source-currency)

Configure the source currency for which the exchange rates will be fetched here.

```
XCHANGE_CURRENCY=USD
```

This is can be overriden when running the `xchange:refresh` command. See the [Usage](#usage) section below.

### External Exchange Rates Service

[](#external-exchange-rates-service)

```
XCHANGE_SERVICE=
```

If this variable is left empty, Firefly III Xchange will be disabled and will not update exchange rates. Currently supported services are listed below.

> ⚠️ **Disclaimer:** Please note that the authors of this package maintain no relationship or affiliation with any of the services listed below.

#### Exchangerate.host

[](#exchangeratehost)

[Exchangerate.host](https://exchangerate.host) is a paid service with a free tier.

- Use `XCHANGE_SERVICE=exchangerate_host` to enable this service.
- Configure your API key for this service using `XCHANGE_SERVICE=`

Usage
-----

[](#usage)

### Manually Running The Command

[](#manually-running-the-command)

To update exchange rates using your configured service and currency, simply run

```
php artisan xchange:refresh
```

You can override the default source currency for which exchange rates are fetched. For example, to use `CAD` as a source currency, run the following command

```
php artisan xchange:refresh -C CAD
```

### Automating Updates Using Cron

[](#automating-updates-using-cron)

Cron is a very powerful time-based scheduler that can be used to automate exchange rates updates. To do so, edit your file

```
crontab -e
```

Then add as many lines as necessary to schedule updates. These lines will look something like this

```
* * * * * php /artisan xchange:refresh

```

Make sure your replace `` with the actual absolute path to your Firefly III installation. The asterisks at the beginning are where the schedule can be configured, see [Cron on Wikipedia](https://en.wikipedia.org/wiki/Cron) and the [Cron article on Firefly III's documentation](https://docs.firefly-iii.org/how-to/firefly-iii/advanced/cron/#calling-a-command/) for more details.

For example, the following cron lines will fetch CAD exchange rates every day at 1:00 AM, and USD exchange rates every day at 2:00 AM

```
0 1 * * * php /artisan xchange:refresh -C CAD
0 2 * * * php /artisan xchange:refresh -C USD

```

📃 License
---------

[](#-license)

Firefly III Xchange is free and open-source software released under the Apache 2.0 license. See [LICENSE](LICENSE) for more information.

🧑🏻‍💻 Contributing
-----------------

[](#‍-contributing)

We are currently looking to:

- Expand the available external exchange rate services with more options
- Add support for containerized deployments

If you'd like to contribute, please consult the [contribution guide](CONTRIBUTING.md).

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance81

Actively maintained with recent releases

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

103d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/f258e205fa7d40cc892980012cfd1c64663ea99fa7854fa2a9d8080661796006?d=identicon)[spatian](/maintainers/spatian)

---

Top Contributors

[![saadsidqui](https://avatars.githubusercontent.com/u/25284407?v=4)](https://github.com/saadsidqui "saadsidqui (11 commits)")

---

Tags

currencyexchangefireflyfirefly-iiilaravelratexchangelaravelcurrencypackageRateexchangefireflyfirefly iiixchange

###  Code Quality

TestsPest

### Embed Badge

![Health badge](/badges/spatian-dev-firefly-iii-xchange/health.svg)

```
[![Health](https://phpackages.com/badges/spatian-dev-firefly-iii-xchange/health.svg)](https://phpackages.com/packages/spatian-dev-firefly-iii-xchange)
```

###  Alternatives

[joisarjignesh/bigbluebutton

BigBlueButton Server API Library for Laravel

162145.5k1](/packages/joisarjignesh-bigbluebutton)[joggapp/laravel-aws-sns

Laravel package for the SNS events by AWS

3171.8k](/packages/joggapp-laravel-aws-sns)[gregoriohc/laravel-trello

A Laravel wrapper and facade package for the Trello API

3366.8k2](/packages/gregoriohc-laravel-trello)[maciej-sz/nbp-php

API for accessing Polish National Bank (NBP - Narodowy Bank Polski) currency and commodities exchange rates

1343.3k1](/packages/maciej-sz-nbp-php)[nikolag/laravel-square

Square API integration with Laravel built on nikolag/core

3827.3k](/packages/nikolag-laravel-square)[hernandev/hipchat-laravel

HipChat PHP Client Wrapper for Laravel 4 and 5

2733.2k](/packages/hernandev-hipchat-laravel)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
