{
  "openapi": "3.1.0",
  "info": {
    "title": "Kurs NBP do faktury w walucie",
    "version": "1",
    "description": "Przeliczenie faktury w walucie na złote kursem średnim NBP (tabela A) z ostatniego dnia roboczego przed dniem przychodu (art. 11a ust. 1 ustawy o PIT, Dz.U. 2026 poz. 592; w VAT art. 31a ustawy o VAT) i różnica kursowa przy zapłacie (art. 24c ustawy o PIT: kurs faktycznie zastosowany albo kurs średni NBP z dnia roboczego przed zapłatą). kurs_ostateczny false: dzień przychodu jutro, a dzisiejszej tabeli jeszcze nie ma."
  },
  "servers": [
    {
      "url": "https://przeliczmy.pl"
    }
  ],
  "paths": {
    "/api/kurs/faktura": {
      "get": {
        "operationId": "kursFaktura",
        "summary": "Kurs NBP do faktury w walucie i różnica kursowa",
        "parameters": [
          {
            "name": "waluta",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "EUR",
                "USD",
                "GBP",
                "CHF",
                "CZK",
                "SEK",
                "NOK",
                "DKK",
                "JPY",
                "CAD",
                "AUD"
              ],
              "default": "EUR"
            }
          },
          {
            "name": "kwota",
            "in": "query",
            "required": true,
            "schema": {
              "type": "number",
              "minimum": 0.01,
              "maximum": 1000000000
            }
          },
          {
            "name": "data",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "zaplata",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "kurs_zaplaty",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "minimum": 0
            }
          },
          {
            "name": "dzis",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Wynik (kwoty w zł, kursy jak w tabeli NBP)"
          },
          "400": {
            "description": "Błędne parametry"
          },
          "429": {
            "description": "Za dużo zapytań, spróbuj za minutę"
          },
          "502": {
            "description": "API NBP nie odpowiada"
          }
        }
      }
    }
  }
}