KSeF Decision API

KSeF Decision API

Czy ta faktura musi trafić do KSeF? Jedno zapytanie, decyzja z podstawą prawną

Wysyłasz dane transakcji, dostajesz jednoznaczną odpowiedź: czy dokument podlega obowiązkowi wystawienia w Krajowym Systemie e-Faktur, jak go dostarczyć nabywcy, z jakiego przepisu to wynika i jakie założenia przyjęliśmy przy brakujących danych. Bez integracji z KSeF, bez przechowywania Twoich faktur — jedna decyzja na jedno żądanie.

Plan Free: 1 000 zapytań miesięcznie, bez karty. Reguły bazowe w wersji 2026.09.1.

Nie piszesz kodu? Po założeniu darmowego konta sprawdzisz dowolną fakturę w playgroundzie: formularz w przeglądarce, ten sam silnik co API, odpowiedź z artykułem ustawy. Bez karty, bez zapisywania wpisanych danych.

Jak sprawdzić obowiązek KSeF przez API

Krok 1

Klucz API

Zakładasz konto, potwierdzasz e-mail i generujesz klucz w panelu. Klucz pokazujemy raz — potem widzisz już tylko jego prefiks.

Krok 2

POST /v1/check

Wysyłasz NIP sprzedawcy, dane nabywcy, typ dokumentu i (opcjonalnie) datę oraz miesięczną sprzedaż. Status VAT kontrahenta pobieramy sami z Wykazu podatników VAT.

Krok 3

Decyzja z uzasadnieniem

W odpowiedzi: ksef_required, reason, delivery, lista założeń i dopasowana reguła z podstawą prawną (legal_basis w dokumentacji).

Przykład: faktura B2B a obowiązek KSeF

Faktura B2B krajowa, sprzedawca powyżej progu 10 000 zł miesięcznie.

Żądanie

curl -X POST https://czyksef.pl/v1/check \
  -H "Authorization: Bearer kdk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "content-type: application/json" \
  -d '{
    "seller_nip": "1234563218",
    "buyer_nip": "9876543210",
    "document_type": "invoice",
    "seller_monthly_sales_pln": 50000
  }'

Odpowiedź

{
  "ksef_required": true,
  "delivery": "ksef",
  "reason": "b2b_domestic",
  "applicable_schema": "FA(3)",
  "legal": {
    "ksef_required": true,
    "reason": "b2b_domestic",
    "matched_rule": {
      "layer": "base",
      "id": "b2b_domestic",
      "tier": "soft"
    }
  },
  "assumptions": [],
  "confidence": "full",
  "base_rules_version": "2026.09.1",
  "checked_at": "2026-09-06T12:00:00.000Z"
}

Pełny opis pól, słownik kodów reason i lista założeń: dokumentacja API.

Cennik

Limit liczony w miesiącu kalendarzowym (czas warszawski). Po przekroczeniu limitu API zwraca 429 — ostrzegamy e-mailem przy 80 % i 100 % wykorzystania.

Free

0 zł netto / mies.

bez opłat, bez karty

  • 1 000 zapytań / mies.
  • 60 zapytań / min.
  • 2 klucze API
Załóż konto

Starter

najczęściej wybierany

49 zł netto / mies.

60,27 zł brutto (z 23 % VAT)

  • 10 000 zapytań / mies.
  • 120 zapytań / min.
  • 5 klucze API
Załóż konto

Pro

199 zł netto / mies.

244,77 zł brutto (z 23 % VAT)

  • 100 000 zapytań / mies.
  • 300 zapytań / min.
  • 20 klucze API
Załóż konto

Ceny netto w złotych; do ceny doliczamy 23 % VAT (firmy z UE z ważnym numerem VAT rozliczają odwrotne obciążenie). Płatność kartą przez Stripe, faktura z NIP; plan Free zakładasz od ręki bez karty.

Najczęstsze pytania o obowiązek KSeF

Czy faktura B2C musi być wystawiona w KSeF?

Faktury dla osób fizycznych nieprowadzących działalności nie podlegają obowiązkowi KSeF — API zwraca ksef_required: false i reason: b2c_consumer. Jeśli nie podasz NIP-u ani zagranicznego identyfikatora nabywcy, przyjmujemy konsumenta i mówimy o tym wprost w polu assumptions.

Czy faktura dla zagranicznego kontrahenta musi być w KSeF?

Faktura dla zagranicznej firmy jest wystawiana w KSeF, ale udostępniana nabywcy poza systemem, w uzgodniony sposób (z kodem QR). API zwraca ksef_required: true z delivery: outside_ksef i reason: b2b_foreign_buyer, więc od razu wiesz, że dokument trzeba przekazać kontrahentowi osobno.

Od kiedy obowiązuje KSeF i kogo dotyczy próg 10 000 zł?

Obowiązek wystawiania faktur ustrukturyzowanych wynika z art. 106ga ust. 1 ustawy o VAT i obowiązuje od 1 lutego 2026 r.; transakcje z wcześniejszą datą API traktuje jako okres dobrowolnego KSeF (reason: out_of_scope_before_ksef_era). Od 1 kwietnia do 31 grudnia 2026 r. podatnik, którego sprzedaż brutto udokumentowana fakturami w danym miesiącu nie przekracza 10 000 zł, może wystawiać faktury poza KSeF (art. 145m ust. 1) — dlatego przyjmujemy pole seller_monthly_sales_pln, a bez niego zakładamy sprzedaż powyżej progu. Okresu przejściowego z art. 145l (1.02–31.03.2026, podatnicy do 200 mln zł sprzedaży w 2024 r.) API nie modeluje.

Czy paragon z NIP (faktura uproszczona) podlega KSeF?

Do 31 grudnia 2026 r. paragon z NIP do 450 zł (faktura uproszczona) i faktury z kasy rejestrującej pozostają poza KSeF (art. 145n ust. 1 ustawy o VAT) — API zwraca ksef_required: false z reason: out_of_scope_receipt. Od 1 stycznia 2027 r. paragon z NIP nie pełni już funkcji faktury; sprzedaż B2B wymaga faktury FA(3) w KSeF, o czym API uprzedza ostrzeżeniem receipt_with_nip_not_invoice_from_2027.

Skąd bierzecie status VAT?

Z oficjalnego Wykazu podatników VAT Ministerstwa Finansów (wl-api.mf.gov.pl), z krótkim cache'em. Zapisujemy wyłącznie NIP i status — bez nazw, adresów i numerów rachunków. Status możesz też pominąć (resolve_vat_status: false), gdy zależy Ci na czasie odpowiedzi.

Czy KSeF Decision API wystawia faktury w KSeF?

Nie. API odpowiada tylko na pytanie, czy dany dokument musi być wystawiony w KSeF i jak udostępnić go nabywcy. Nie łączy się z KSeF, nie wystawia ani nie przechowuje faktur — wystawienie robisz w swoim systemie księgowym lub bramce KSeF, a decyzję z API możesz podpiąć przed tym krokiem.

Jakie dane trzeba podać w zapytaniu?

Wymagane są tylko seller_nip i document_type. Opcjonalnie: buyer_nip albo zagraniczny buyer_tax_id, buyer_country, buyer_type, procedure (OSS/IOSS), date (domyślnie dzisiejsza) i seller_monthly_sales_pln. Każde przyjęte założenie wracamy w polu assumptions, więc wiesz, co warto doprecyzować. Pełna lista pól w dokumentacji API.

Czy to porada prawna?

Nie. To narzędzie pomocnicze: decyzja powstaje z reguł opartych na przepisach, każda z odesłaniem do artykułu ustawy, ale odpowiedzialność za rozliczenie pozostaje po Twojej stronie. Szczegóły w zastrzeżeniu prawnym.

Zacznij od planu Free

1 000 zapytań miesięcznie, klucze API: 2, bez karty płatniczej.

Załóż konto