KSeF Faktury
EN
Join the start list
Early access

The API is in early access: we hand out test keys (KSeF TEST) in batches to people on the launch list. Live mode comes later.

Request access

Guides

Foreign currency invoices and the NBP rate

An order can be in euro, dollars or another NBP table A currency. The invoice keeps the amounts in that currency and shows VAT in PLN at the NBP rate.

How it works

Set order.currency to a currency code, e.g. EUR. Line and shipping prices are in that currency. The invoice shows amounts in the order currency and the VAT amount also in PLN, converted at the NBP table A average rate of the last business day before the payment day (paid_at). The table number and the rate date are printed on the invoice.

POST /v1/invoices
curl -X POST https://app.ksefshop.pl/v1/invoices \
  -H "Authorization: Bearer $KSEF_API_KEY" \
  -H "Idempotency-Key: order-SO-1002" \
  -H "Content-Type: application/json" \
  -d '{
  "order": {
    "external_id": "SO-1002",
    "paid_at": "2026-10-20T07:15:00Z",
    "currency": "EUR",
    "payment_method": "transfer",
    "buyer": {
      "nip": "7740001454",
      "name": "Przykład S.A.",
      "address_line1": "ul. Długa 5",
      "address_line2": "80-831 Gdańsk"
    },
    "lines": [
      {
        "name": "Lampka biurkowa LED",
        "quantity": 1,
        "unit_price": "123.00",
        "vat_rate": "23"
      }
    ]
  }
}'

Which currencies

PLN and every currency the NBP publishes in table A of average rates (EUR, USD, GBP, CHF, CZK and more). A currency outside table A returns 400 currency_not_supported.

Check the rate before sending

You can check the rate and the VAT conversion by hand in our free tool: NBP rate for an invoice. It calculates the same way: table A of the business day before the given date.

Watch out

  • paid_at decides the rate date. Send the real payment time, not the time you call the API.
  • total_gross of the invoice object is in the invoice currency, not in PLN.
  • A correction of a foreign currency invoice uses the same currency as the original.
KSeF Faktury

API early access

We hand out test keys in batches. Leave your email: we will write when your access is ready.