> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lunarphp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Currencies

Currencies define the monetary units available for pricing, with exchange rates for conversion.

## Overview

Currencies allow pricing to be managed in different monetary units. Each currency has an exchange rate relative to the default currency, enabling price conversion.

```php theme={null}
Lunar\Core\Models\Currency
```

### Fields

| Field | Type | Description |
| :- | :- | :- |
| `id` | `id` | Primary key |
| `code` | `string` | The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code |
| `name` | `string` | A descriptive name for the currency |
| `exchange_rate` | `decimal(10,4)` | The exchange rate relative to the default currency |
| `decimal_places` | `integer` | The number of decimal places, e.g. `2`. See [Pricing](/2.x/reference/pricing#decimal-value) for how this affects stored prices |
| `enabled` | `boolean` | Whether the currency is enabled |
| `default` | `boolean` | Whether the currency is the default |
| `created_at` | `timestamp` | |
| `updated_at` | `timestamp` | |
| `sync_prices` | `boolean` | Whether to synchronize prices for this currency |

### Relationships

| Relationship | Type | Related Model | Description |
| :- | :- | :- | :- |
| `prices` | `HasMany` | `Lunar\Core\Models\Price` | Prices in this currency |

### Scopes

| Scope | Description |
| :- | :- |
| `enabled($enabled = true)` | Filter to enabled/disabled currencies |
| `default($default = true)` | Filter to the default currency |

## Creating a currency

```php theme={null}
use Lunar\Core\Models\Currency;

Currency::create([
    'code' => 'GBP',
    'name' => 'British Pound',
    'exchange_rate' => 1.0000,
    'decimal_places' => 2,
    'enabled' => true,
    'default' => true,
]);
```

## Exchange rates

Exchange rates are relative to the default currency. For example, given the following default currency:

```php theme={null}
use Lunar\Core\Models\Currency;

Currency::create([
    'code' => 'GBP',
    'name' => 'British Pound',
    'exchange_rate' => 1.0000,
    'decimal_places' => 2,
    'enabled' => true,
    'default' => true,
]);
```

The default currency's exchange rate is set to `1` as the base. To add EUR (Euros) when the exchange rate from GBP to EUR is `1.17`, the value should be relative to the default: 1 / 1.17 = 0.8547.

The exchange rate is independent of product pricing, as prices can be specified per currency directly. The exchange rate serves as a helper when working with prices.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.