{
  "id": "vQB8xArVsMh8sroM",
  "meta": {
    "instanceId": "1777696fb9fddfee653e70940936c2b1e28ba1f1bde53b7182fbd6eb01988706"
  },
  "name": "Currency Converter via Webhook using ExchangeRate.host",
  "tags": [],
  "nodes": [
    {
      "id": "6f42915a-6851-4e36-b086-29fc6c975d48",
      "name": "Note: Webhook Trigger",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        -160
      ],
      "parameters": {
        "width": 280,
        "height": 540,
        "content": "## Webhook Input\n\nThis node listens for incoming POST requests. It expects a JSON body with the following properties:\n\n* `from` (source currency's 3-letter ISO 4217 code, e.g., `USD`)\n* `to` (target currency's 3-letter ISO 4217 code, e.g., `EUR`)\n* `amount` (numeric value to convert)\n\n**Important:** The ExchangeRate.host API key is handled securely by n8n's credential system and should **not** be included in the webhook body or headers."
      },
      "typeVersion": 1
    },
    {
      "id": "52cb862c-71e1-4960-a0f2-2f6a7c620d7b",
      "name": "Note: Currency Conversion API Call",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        340,
        -160
      ],
      "parameters": {
        "color": 2,
        "width": 280,
        "height": 540,
        "content": "## Currency Conversion API Call\n\nThis node makes an HTTP GET request to the ExchangeRate.host API to perform the currency conversion. It uses the `from`, `to`, and `amount` from the webhook body to build the API request URL.\n\n**The API access key is securely retrieved from n8n's pre-configured credentials** (HTTP Query Auth type) and automatically added as a query parameter (`access_key`). This ensures your key is not exposed in the workflow or webhook requests."
      },
      "typeVersion": 1
    },
    {
      "id": "e75b2ecb-7637-4dfc-9ded-d2f8294d64ba",
      "name": "Note: Webhook Response",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        660,
        0
      ],
      "parameters": {
        "color": 3,
        "width": 320,
        "height": 380,
        "content": "## Webhook Response\n\nThis node sends the currency conversion result received from ExchangeRate.host back to the original caller of the webhook. You can insert other nodes before this to format the output, log the conversion, or perform further actions before responding."
      },
      "typeVersion": 1
    },
    {
      "id": "aa7f2f15-a806-41a2-94fc-7e3e0b34e66c",
      "name": "Convert Currency",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        420,
        220
      ],
      "parameters": {
        "url": "=https://api.exchangerate.host/convert?from={{ $json.body.from }}&to={{ $json.body.to }}&amount={{ $json.body.amount }}",
        "method": "=GET",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpQueryAuth"
      },
      "credentials": {
        "httpQueryAuth": {
          "id": "credential-id",
          "name": "httpQueryAuth Credential"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "7d362367-2cbc-4761-ac60-a9c0cdf96329",
      "name": "Receive Conversion Request Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        80,
        220
      ],
      "webhookId": "fe5e86fb-2975-4206-8982-19c52dc6a327-unique-id",
      "parameters": {
        "path": "convert-currency",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "responseNode"
      },
      "typeVersion": 2
    },
    {
      "id": "9cfde3de-fdad-4d16-bed4-08512d57dd73",
      "name": "Respond with Converted Amount",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        780,
        220
      ],
      "parameters": {
        "options": {},
        "respondWith": "allIncomingItems"
      },
      "typeVersion": 1.2
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "d7c961bc-e3f3-42a4-8238-5b0393417449",
  "connections": {
    "Convert Currency": {
      "main": [
        [
          {
            "node": "Respond with Converted Amount",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Receive Conversion Request Webhook": {
      "main": [
        [
          {
            "node": "Convert Currency",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}