# Daily exchange rates to Slack or your store

Fetch the European Central Bank's reference rates every working day with the free [Frankfurter](https://www.frankfurter.app) API, and post them to chat or update your store's prices. No API key.

## Example: EUR/USD in Slack every afternoon

The ECB publishes around 16:00 Central European Time on working days:

```json
{
  "name": "EUR/USD to #finance",
  "cron": { "expression": "15 16 * * 1-5", "time_zone": "Europe/Berlin" },
  "nodes": [
    { "id": "rate", "frankfurter_latest": { "from": "EUR", "to": "USD" } },
    { "id": "post", "slack_send_message": {
        "webhook_url": "https://hooks.slack.com/services/T000/B000/XXXX",
        "text": "ECB reference rate for {{ $.date }}: 1 EUR = {{ $.rates.USD }} USD" } }
  ]
}
```

## Example: several currencies into your store

For more than one currency, call Frankfurter with a [request step](/integrations/webhooks):

```json
{
  "name": "Daily exchange rates",
  "cron": { "expression": "30 16 * * 1-5", "time_zone": "Europe/Berlin" },
  "nodes": [
    { "id": "rates", "request": { "method": "GET", "endpoint": "https://api.frankfurter.app/latest?from=USD&to=EUR,GBP,CAD" } },
    { "id": "update", "request": {
        "method": "PUT",
        "endpoint": "https://shop.example.com/admin/api/currencies",
        "credential_id": "YOUR_STORE_TOKEN_ID",
        "body": "{ \"base\": \"USD\", \"as_of\": \"{{ $.date }}\", \"rates\": { \"EUR\": {{ $.rates.EUR }}, \"GBP\": {{ $.rates.GBP }}, \"CAD\": {{ $.rates.CAD }} } }" } }
  ]
}
```

## Reference

### Get an exchange rate from Frankfurter: `frankfurter_latest`

**Sends** GET `https://api.frankfurter.app/latest` (European Central Bank reference rates). No API key. **Output** for the next step: `{"amount": 1, "base": "USD", "date": "2026-10-29", "rates": {"EUR": 0.92}}`.

| Field | Type | Notes |
| --- | --- | --- |
| `from` | string, required | An ISO 4217 code, such as `USD`. |
| `to` | string, required | The ISO 4217 code to convert to, such as `EUR`. |
