Krajowy system e-Faktur

GM
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 46
1

Offtopic, ale za to dotyczy tokenów JWT, może się komuś przyda:

EDIT:
Na szybko postanowiłem zobaczyć co jest w naszych tokenach JWT i takie tam siedzą informacje, myślę, że te wektory ataków są jak najbardziej możliwe, o których ten gostek opowiada, zwłaszcza te samopodpisane tokeny są interesujące.

AccessToken:

Kopiuj
header:
{
  "alg": "HS256",
  "typ": "JWT"
}

payload:
{
  "typ": "ContextToken",
  "cit": "Nip",
  "civ": "**********",
  "aum": "InternalCertificate",
  "arn": "20260118-AU-276010****-570100****-**",
  "sud": "{\"subjectIdentifier\":{\"type\":\"Nip\",\"value\":\"**********\"},\"givenName\":\"\",\"commonName\":\"Eordlar Rivka\",\"countryName\":\"PL\",\"organizationName\":\"Eordlar Rivka Inc. O\",\"organizationIdentifier\":\"VATPL-**********\"}",
  "per": "[\"Owner\"]",
  "pec": "[]",
  "rol": "[]",
  "pep": "[]",
  "iop": "[]",
  "exp": 1768736587,
  "iat": 1768735687,
  "iss": "ksef-api-te",
  "aud": "ksef-api-te"
}

RefreshToken:

Kopiuj
header:
{
  "alg": "HS256",
  "typ": "JWT"
}

payload:
{
  "typ": "RefreshToken",
  "cit": "Nip",
  "civ": "**********",
  "arn": "20260118-AU-276010****-570100****-**",
  "exp": 1769340487,
  "iat": 1768735687,
  "iss": "ksef-api-te",
  "aud": "ksef-api-te"
}
V2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 43
0

Czy coś pozmieniali w tokenach KSeF? Przestało mi działać unieważnienie tokena KSeF - zwraca status 403. Wcześniej wystarczyło się autoryzować tokenem, który chcemy unieważnić (nawet jeśli miał tylko uprawnienie "read"), żeby unieważnienie zadziałało.
(środowisko demo)

GM
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 46
1

Skrót z sejmowych dywagacji na temat KSeF:

Ja mam tylko jedno pytanie do tego co padło w tych wyrywkach, gdzie to jest napisane przez MF, że mogę komuś wysłać, jako sprzedawca, po 31. stycznia fakturę w PDF, czy jako zwykły tekst w email-u, czy na papierze - wszystkie dokumenty bez QR kodów oczywiście - i strona otrzymująca, czyli nabywca, ma obowiązek przyjąć taki dokument ?

AdrianWladyka
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 16
0

Witam.
Próbuje uruchomić produkcyjnie cały mechanizm i ku mojej wątpliwej uciesze dostaje na produkcji : Błąd techniczny przy budowaniu klienta KSeF: Could not resolve host: api.ksef.mf.gov.pl for "https://api.ksef.mf.gov.pl/v2/auth/challenge".

Ktoś co wie ?

Dodam że leci przy próbie wgranie certyfikatu.

P2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 12
0

Czy coś sie stało z ksef-test? Robię POST https://ksef-test.mf.gov.pl/api/v2/auth/challenge i mam 400 a w piątek jeszcze wszystko mi śmigało.

P2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 12
0

Czy możecie powiedzieć jakie url są aktualne i działające na obecną chwilę ? Próbuję to: do przedprodukcyjnego https://api-demo.ksef.mf.gov.pl/v2 i sesja nie startuje. Czy w ogóle ono działa ?

Jacek Żakowski
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Witam. Próbuję wysłać fakturę w środowisku testowym KSeF używając PHP oraz korzystając z wygenerowanego w testowym tokenu KSeF.

  • endPoint /security/public-key-certificates bez problemu
  • endPoint /auth/challenge bez problemu
  • endPoint /auth/ksef-token bez problemu
  • endPoint /auth/{referenceNumber} bez problemu
    Na tym etapie dostaje nawet Kod: 200, Opis: Uwierzytelnianie zakończone sukcesem
    Ale dalej już zaczynają się schody, mianowicie endPoint /sessions/online zwraca mi błąd HTTP 403
    Nie za bardzo wiem w czym jest ten problem? Może token nie ma przypisanej roli, czy coś podobnego, ale w testowym nie za bardzo da się ja ustawić.

Dane z komunikacji są takie:
Otwarcie sesji interaktywnej.

Nagłówki:
Array
(
[0] => Accept: application/json
[1] => Content-Type: application/json
[2] => User-Agent: MyKSeFClient/1.0
[3] => Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eXAiOiJBdXRoZW50aWNhdGlvblRva2VuIiwiYXJuIjoiMjAyNjAxMTgtQVUtMzA4QUFDMTAwMC0xRUI2NTc1N0EzLTI0IiwiZXhwIjoxNzY4NzQ3OTk5LCJpYXQiOjE3Njg3NDUyOTksImlzcyI6ImtzZWYtYXBpLXRlIiwiYXVkIjoia3NlZi1hcGktdGUifQ.34rYWFkxO51ToB8kyJBg4Y1Y7ZqfnT7DEumUfCc37WQ
)

JSON wysyłany do KSeF:
{
"formCode": {
"systemCode": "FA",
"schemaVersion": "1-0E",
"value": "FA"
},
"encryption": {
"encryptedSymmetricKey": "nj3ZkV98ZChq4ZcsZg5zg0u9RS10OYyX3T9XW1qcjNGYp4+9uIfHnt2t3zxbTsXb6BE+t/M4hj9kWiZE/cQCmomG8tzoEW9bookcS7SsGB96IJtWKccUw4pZGJaB/KP4DWM84dPQNZK9xYPns+Dla4IKh2F/MYRMfoZJI5QlcWbNzikaLnVbKR0pLfTufKVeQIvEIZi7Pl0JNpP2WZuh+2Gj7rtLg8krfsOCeteKuQ3Nk6L/twbI8erG2yvMdbStYmUm/5KpdCuTpyfalqaTeTNN0OmjQNY6hr7ewM/9LRXaO27Eq266G9KV0Z7GXGGLKDblBtUNRKegqFqFGnFKcA==",
"initializationVector": "ZhZDoOIx1xynTy0gE9SneA=="
}
}

Odpowiedż:
Array
(
[ok] =>
[httpCode] => 403
[raw] =>
[data] =>
)

Tu jest jeszcze dokładny log komunikacji:

  • Trying 45.60.74.103:443...
  • Connected to api-test.ksef.mf.gov.pl (45.60.74.103) port 443 (#0)
  • ALPN, offering h2
  • ALPN, offering http/1.1
  • successfully set certificate verify locations:
  • CAfile: /etc/pki/tls/certs/ca-bundle.crt
    CApath: none
  • SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256
  • ALPN, server accepted to use h2
  • Server certificate:
  • subject: C=PL; L=Warszawa; O=MINISTERSTWO FINANSÓW; CN=*.ksef.mf.gov.pl
  • start date: Dec 8 00:00:00 2025 GMT
  • expire date: Dec 7 23:59:59 2026 GMT
  • subjectAltName: host "api-test.ksef.mf.gov.pl" matched cert's "*.ksef.mf.gov.pl"
  • issuer: C=US; O=DigiCert Inc; OU=www.digicert.com; CN=GeoTrust TLS RSA CA G1
  • SSL certificate verify ok.
  • Using HTTP2, server supports multi-use
  • Connection state changed (HTTP/2 confirmed)
  • Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
  • Using Stream ID: 1 (easy handle 0x197f060)

POST /v2/permissions/query/personal/grants HTTP/2
Host: api-test.ksef.mf.gov.pl
accept: application/json
content-type: application/json
user-agent: MyKSeFClient/1.0
authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eXAiOiJBdXRoZW50aWNhdGlvblRva2VuIiwiYXJuIjoiMjAyNjAxMTgtQVUtMzA4QUFDMTAwMC0xRUI2NTc1N0EzLTI0IiwiZXhwIjoxNzY4NzQ3OTk5LCJpYXQiOjE3Njg3NDUyOTksImlzcyI6ImtzZWYtYXBpLXRlIiwiYXVkIjoia3NlZi1hcGktdGUifQ.34rYWFkxO51ToB8kyJBg4Y1Y7ZqfnT7DEumUfCc37WQ
content-length: 119

  • We are completely uploaded and fine
  • old SSL session ID is stale, removing
  • Connection state changed (MAX_CONCURRENT_STREAMS == 128)!
    < HTTP/2 403
    < date: Sun, 18 Jan 2026 14:08:20 GMT
    < content-length: 0
    < server: Kestrel
    < set-cookie: visid_incap_3285211=GbJEe1JxSMSBd/iY4tCQrFTpbGkAAAAAQUIPAAAAAABl4oEdQRviFe3Imn/78DCd; expires=Sun, 17 Jan 2027 22:32:09 GMT; HttpOnly; path=/; Domain=.ksef.mf.gov.pl; Secure; SameSite=None
    < set-cookie: incap_ses_324_3285211=Urt5MJDq6Bl8b7c7VBR/BFTpbGkAAAAAumAN+XKATdCbBI1RB7lLiQ==; path=/; Domain=.ksef.mf.gov.pl; Secure; SameSite=None
    < strict-transport-security: max-age=31536000
    < x-cdn: Imperva
    < x-iinfo: 8-26906449-26906452 NNNN CT(2 4 0) RT(1768745300800 20) q(0 0 0 0) r(0 0) U6
    <
  • Connection #0 to host api-test.ksef.mf.gov.pl left intact
Mateusz Jaracz
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 11
1

Siema czy ktoś rozkminiał jak te limity mają się np do biur rachunkowych etc? czyli że np jako biuro mam uprawnienia od innego podmiotu i np mam 50 firm, czy limit wtedy jest narzucony na biuro czy na podmiot? chodzi mi o sytuację gdy np muszę dla 50 klientów jako biuro coś pobrać, czy korzystam wtedy z limitów klientów czy swoich jako biuro ? 😄 bo wtedy nagle wychodzi że szybko wchodzę w limity 😄 . Rozkminiał sobie ktoś to może? 😄

RA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 13
0

W pliku _metadata.json przy exporcie faktur mamy takie coś

"netAmount" => 124
"grossAmount" => 152.52
"vatAmount" => 120.44
"currency" => "EUR"

Czyli przy obcej walucie mamy kwotę VAT w PLN - jakaś logika w tym jest bo podatek podaję ostatecznie się złotówkach, ale można to było jako pozycję dodatkową dodać bo w tym wypadku wygląda to dosyć słabo by nie powiedzieć kuriozalnie, zwłaszcza że nie ma podanego kursu waluty w tym pliku,

ZB
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 92
0

Wysyłka wsadowa. Jakich największych wielkości ZIP z fakturami udało się Wam wytworzyć?
Limity idą w setki MB, a ja jakieś śmieszne mam testowe wielkości i się zastanawiam co bym tam musiał wsadzić, żeby chociaż do połowy tych limitów dobić.

xoree
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Poraj
  • Postów: 57
0

Zapraszamy do testów ksefservice.pl

W chwili obecnej posiadamy pełną implementację kodów QR w trybie online oraz offline.
Dodaliśmy dodatkowe zabezpieczenia w procesie dodawania certyfikatów wraz z ich walidacją poprawności.

Wdrożone zostało dwuetapowe logowanie, a system został zabezpieczony przed błędem braku serwerów przetrzymujących schemy do walidacji FA(3).
Dodatkowo wprowadziliśmy nowy parametr w API, który umożliwia wyłączenie walidacji po stronie naszego API FV.

Moduł księgowości jest w pełni sprawny i funkcjonalny — umożliwia generowanie plików JPK w wersji 3 na podstawie zaksięgowanych paczek faktur pobranych z KSeF.

Trwają również prace (na końcowym etapie) nad pełną obsługą faktur korygujących.

GM
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 46
2

Wypowiedź Pan Mentzen-a na temat KSeF:

Dzyszla
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 264
2

19 stycznia 2026 r. w godzinach od 16.00 do 17.30 będą prowadzone prace serwisowe na wersji produkcyjnej Modułu Certyfikatów i Uprawnień (MCU).

Komunikat opublikowany w tym samym dniu. To jest to stabilne i przetestowane środowisko, tak? Nawet przeczytać nie zdążyłem, jak już po wszystkim.

PK_64
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 36
0

Witam

Mam pytanie są jakieś limity i to określamy : https://api-demo.ksef.mf.gov.pl/v2/rate-limits

No super ale już coś wykonałem, zapytanie o sesje wysłałem faktury itp.
To teraz w tym momencie jakie mam limity ? bieżące nie te maksymalne ?

Skąd to się dowiedzieć ile faktur jescze w tej godzinie moge wysłać ?

Paweł

JR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 34
0

Cześć. Podpisuję ertyfikat z xsdes z tms cryptopack.
Podczas XAdES := TXades.Create;

Kopiuj
 try
   var XX:= Xades.GetVersion;
   Xades.Password := aHaslo;
   Xades.KeyFilePath := aSciezkaKlucza;  i tu wywala mi bład -208 Invalid operation
   Xades.CertFilePath := aSciezkaCertyfikatu ;
   Xades.PKCS11Param.isToken := False;
   Xades.Packaging := Enveloped;
   Xades.Template := xPlEnveloped;
   Xades.PathToOriginalFile :=  ExtractFilePath(aPLikDoPodpisu);

Co to możę byc?

PX
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 17
0

Ciekawe co tam wczoraj nazmieniali? w github jeszcze cisza 2.0.1-tr-20260119.3+fe9bea38497ac8d68a596a8b1307

TF
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Hej,
Integruje sie z KSEF w php.
Problem w tym, ze jak sprawdzam status sesji, to dostaje 415 Błąd odszyfrowania dostarczonego klucza. Wiem, ze sa dwa certyfikaty do tokena i symmetricKey i uzywam tego od symmetricKey, ale nie wiem juz kompletnie co robie nie tak. Zawiesiłem się i może ktoś pomoże.
Poniżej fragment funkcji, ktorych uzywam.

public function getSymmetricKey(): array{
    if(!empty($this->symmetricKey) && !empty($this->encryptedSymmetricKeyBase64)){
        return [
            'symmetricKey' => $this->symmetricKey,
            'encryptedSymmetricKeyBase64' => $this->encryptedSymmetricKeyBase64,
        ];
    }
    $symmetricKey = $this->symmetricKey = random_bytes(32); // 256 bitów
    
    $certPem = file_get_contents(Storage::path($this->publicCertSymmetricPath));
    $cert = openssl_x509_read($certPem);

    $publicKeyPem = openssl_pkey_get_public($cert);

    $encrypted = '';
    $ok = openssl_public_encrypt(
        $symmetricKey,
        $encrypted,
        $publicKeyPem,
        OPENSSL_PKCS1_OAEP_PADDING
    );

    if (!$ok) {
        throw new \Exception('Nie udało się zaszyfrować symmetric key: ' . openssl_error_string());
    }
    $this->encryptedSymmetricKeyBase64 = base64_encode($encrypted);

    return [
        'symmetricKey' => $this->symmetricKey,
        'encryptedSymmetricKeyBase64' => $this->encryptedSymmetricKeyBase64,
    ];
}
public function getInitVector(): array{
    if(!empty($this->initVector) && !empty($this->initVectorBase64)){
        return [
            'initVector'=>$this->initVector,
            'initVectorBase64'=>$this->initVectorBase64,
            ];
    }
    $iv = $this->initVector = random_bytes(16);

    $this->initVectorBase64 = base64_encode($iv);

    return [
        'initVector'=>$this->initVector,
        'initVectorBase64'=>$this->initVectorBase64,
    ];
}
public function startSession(){
    $symetricData = $this->getSymmetricKey();
    $vectorData = $this->getInitVector();
    $inputData = [
        'formCode'=>[
            'systemCode'=>"FA (3)",
            'schemaVersion'=> "1-0E",
            'value'=>"FA"
        ],
        'encryption'=>[
            'encryptedSymmetricKey'=>$symetricData['encryptedSymmetricKeyBase64'],
            'initializationVector'=>$vectorData['initVectorBase64']
        ]
    ];

    $response = $this->http->post('sessions/online', [
        'headers' => [
            'Authorization' => 'Bearer ' . $this->accessToken,
            'Accept'        => 'application/json',
            'Content-Type'  => 'application/json',
        ],
        'json' => $inputData,
    ]);
    $data = json_decode($response->getBody()->getContents(), true);
    $this->sessionReferenceNumber = $data['referenceNumber'] ?? null;
    $this->sessionValidUntil = $data['validUntil'] ?? null;

    sleep(1);
    $body = $this->getSessionStatus();

    if(!isset($body['status']) || !is_array($body['status'])) {
        throw new RuntimeException('Blad pobierania statusu sesji');
    }

    if($body['status']['code']==100){
        sleep(2);
        $body = $this->getSessionStatus();
    }

    if($body['status']['code']!=200) {
        dd($body);
        throw new RuntimeException('Bledny status sesji: '. $body['status']['code'].', '.$body['status']['description']);
    }

}
public function getSessionStatus(): array
{
    try {
        $response = $this->http->get(
            'sessions/' . $this->sessionReferenceNumber,
            [
                'headers' => [
                    'Authorization' => 'Bearer ' . $this->accessToken,
                    'Accept'        => 'application/json',
                ],
            ]
        );
        return json_decode(
            $response->getBody()->getContents(),
            true,
            512,
            JSON_THROW_ON_ERROR
        );
    } catch (RequestException $e) {
        if ($e->hasResponse()) {
            throw new RuntimeException(
                'KSeF session status error ' .
                $e->getResponse()->getStatusCode() .
                ': ' .
                $e->getResponse()->getBody()->getContents(),
                $e->getResponse()->getStatusCode(),
                $e
            );
        }

        throw new RuntimeException(
            'Błąd komunikacji z KSeF: ' . $e->getMessage(),
            0,
            $e
        );
    }

}
S8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 106
0

Co wstawiacie w przypadku korekty na część kwoty w pole P_8B ?

LC
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6
0

Cześć, czy ktoś zauważył jakieś problemy z wysyłką wsadową? Czasem zdarza mi się, że podczas wysyłki paczki w trybie wsadowym dostaję zwrotkę:

Kopiuj
Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.
Status 403 Forbidden

Próbuję ponownie wysłać tą samą paczkę ponownie i efekt jest taki sam. Nie jest to zależne od tego ile dokumentów jest w paczce. Otworzenie nowej sesji wsadowej w tej samej sesji głównej czasem pozwala wysłać paczkę wsadowo, a czasem nie, więc to nie kwestia uprawnień. Losowo zdarzają się takie zwrotki. Próbowałem sprawdzać status sesji wsadowej po otwarciu jeszcze przed wysłaniem paczki, wszystko wygląda w porządku, status sesji 100, sesja otwarta. Adres do którego ma być przesłana paczka przychodzi podczas otwierania sesji więc tu magii nie ma, nagłówek autoryzacyjny jakiś dodatkowy nie jest wymagany, poza tym który jest odsyłany podczas otwierania sesji i dodaję go przy wysyłaniu, może jakieś kodowanie adresu tu robi problem?. Ma ktoś jakiś pomysł co może być nie tak, ewentualnie spotkał się z tym problemem? Nie widzę za bardzo informacji, żeby wysyłka wsadowa nie działała stabilnie. Próby wykonywane na środowisku testowym.

Dzyszla
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 264
0

GPT, powróż, ile awarii będzie:

Poniżej zebrałem szacowany skumulowany czas niedostępności / istotnych zakłóceń KSeF w podanych horyzontach czasowych, oddzielnie dla każdego typu awarii. Są to wartości oczekiwane (expected downtime), a nie maksymalne – zakładają typowy przebieg uruchomienia systemu klasy „mission-critical” w administracji publicznej.

Przyjmuję, że:

  • „awaria” = stan realnie blokujący dany proces dla istotnej liczby użytkowników,
  • krótkie błędy jednostkowe (np. pojedyncze 500/timeout) liczą się tylko wtedy, gdy występują seryjnie,
  • czasy są sumą wszystkich incydentów w danym okresie, a nie jednym ciągłym blackoutem.

Szacowany skumulowany czas awarii KSeF

Typ problemu 1. doba (0–24h) 2 doby (0–48h) 1 tydzień (0–7 dni)
Brak komunikacji z KSeF (API niedostępne / masowe timeouty) 30–90 min 45–120 min 1–3 h
Brak możliwości przetwarzania faktur (walidacja, przyjęcie FA) 1–3 h 2–5 h 4–8 h
Problemy z pobieraniem faktur (API read, synchronizacja) 30–90 min 1–2 h 2–4 h
Działanie niezgodne z założeniami (krytyczne błędy logiczne) 0–30 min 0–60 min 1–2 h
Incydenty bezpieczeństwa o realnym wpływie operacyjnym ~0 ~0 ~0

Jak to interpretować praktycznie

1. Komunikacja (API)

  • Najczęściej kilka krótkich przerw (np. 10–20 minut) w pierwszej dobie.
  • Raczej brak jednego wielogodzinnego przestoju.
  • Typowe przyczyny: przeciążenie bramek API, problemy z autoryzacją tokenów.

2. Przetwarzanie faktur (najbardziej odczuwalne)

  • To największy skumulowany czas problemów, bo obejmuje:

    • błędy walidacji schematu,
    • nieoczekiwane reguły biznesowe,
    • różnice interpretacyjne między MF a dostawcami ERP.
  • Bardzo możliwe, że system „działa”, ale nie przyjmuje części faktur.

3. Pobieranie faktur

  • Problemy raczej falowe, zależne od:

    • paginacji,
    • masowych synchronizacji,
    • obciążeń po stronie klientów.
  • Zwykle szybciej stabilizowane niż write-path.

4. Działanie niezgodne z założeniami

  • Np.:

    • nieprawidłowe statusy dokumentów,
    • opóźnione zmiany stanów,
    • niespójności między endpointami.
  • Czas krótki, ale wysoki koszt poznawczy (trudne do interpretacji).

5. Bezpieczeństwo

  • Zakładam brak realnego downtime’u wynikającego z incydentów bezpieczeństwa.

  • Ewentualne zdarzenia będą miały charakter:

    • prewencyjny,
    • lokalny,
    • bez ujawnienia danych.

Widok syntetyczny (dla zarządzania ryzykiem)

Jeśli spojrzeć łącznie:

  • 1. doba: 2–5 godzin „efektywnych zakłóceń” rozproszonych w czasie
  • 2 doby: 4–8 godzin
  • 1 tydzień: 8–15 godzin

Przy czym:

  • >60% tego czasu dotyczy przetwarzania faktur, a nie samej dostępności API.
  • Najbardziej krytyczny operacyjnie będzie poniedziałek po starcie, nie sam dzień 1.02.
xoree
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Poraj
  • Postów: 57
0

Zapraszamy do testowania ksefservice.pl oraz udostępnionych skryptów klienckich w środowiskach Linux oraz Windows.
Rozwiązanie umożliwia automatyczną wysyłkę faktur FA(3) do KSeF, obsługę trybu interaktywnego i wsadowego (batch), zapis logów, UPO oraz archiwizację plików.
🔧 Dostępne skrypty
Linux (Bash):
https://ksefservice.pl/files/KSeFService.sh
Windows (PowerShell):
https://ksefservice.pl/files/KSeFService.ps1
Dokumentacja API
Pełna dokumentacja API KSeF Service (endpointy, parametry, przykłady curl):
https://ksefservice.pl/docs/api.php
Strona projektu
Więcej informacji, aktualności i materiały pomocnicze:
Wszelkie uwagi, sugestie i pytania techniczne mile widziane 🙂

KO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
1

Czy ktoś wie gdzie jest informacja kto wystawił FV ?
Załóżmy że dostałem uprawnienie wystawiania faktury w kontekscie NIP X.
Logując się jako szef NIP X, jestem jakoś w stanie sprawdzić kto wystawił daną fakturę?

Dzyszla
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 264
0

Case: Mają samą wizualizację faktury z numerem KSeF, NIPami, wartościami itd ale bez kodu QR to nie da się nijak poza API zweryfikować, czy ona w ogóle jest w KSeF, no nie?

E5
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 9
1

Pobierając metadane faktury mamy kilka dat, w tym:
invoicingDate - Data przyjęcia faktury w systemie KSeF (do dalszego przetwarzania)
acquisitionDate - Data nadania numeru KSeF
Jaka jest wg. przepisów i wg. technicznych aspektów różnica między tymi datami? Są one różne, zatem może wystąpić sytuacja, że będą wskazywać na różne dni.
Która data jest istotna z punktu widzenia wysyłki faktur do Ksef?

ZB
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 92
0

Czy da się ograniczyć uprawnienia certyfikatowi KSeF wystawionemu po uwierzytelnieniu się za pomocą pieczęci?

PX
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 17
0

zmiany w demo lecą jak burza - dziś kolejn wersja - szkoda że nadal silent v2.0.0 2.0.1-tr-20260121.1+f0c6e723485cfb9635fba13c6d8a0f4f

Marcin Polkowski
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 12
0

Czy u Was też leży AP (TEST)? Loguje przez kilkanaście sekund a potem wali stronę z błędem:

screenshot-20260121205510.png

silverdr
  • Rejestracja: dni
  • Ostatnio: dni
0

Przychodzi sobie UPO ze środowiska testowego i nie przechodzi sprawdzenia poprawności względem (jak rozumiem najaktualniejszego) upo-v4-3.xsd O ile

Kopiuj
element NazwaPodmiotuPrzyjmujacego: Schemas validity error : Element '{http://upo.schematy.mf.gov.pl/KSeF/v4-3}NazwaPodmiotuPrzyjmujacego': The actual value 'Ministerstwo Finansów - środowisko testowe (TE)' does not match the fixed value constraint 'Ministerstwo Finansów'.

jest jeszcze zrozumiałe (choć można pewnie było uwzględnić) o tyle to:

Kopiuj
element Signature: Schemas validity error : Element '{http://www.w3.org/2000/09/xmldsig#}Signature': This element is not expected.

już jest mi trudniej sobie wytłumaczyć. Mając wyrozumiałość oświećcie mnie proszę w temacie co robię nie tak…

SK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 16
0

Takie pytanie egzystencjalne: jak pobieracie faktury zakupu i generujecie jakiś pogląd, to dodajecie do tego nr KSEF i kod QR, czy tylko pokazujecie to, co przyszło w XMLu?

JK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 52
2

No i po ponad miesiącu od zapytania dlaczego AP nie działa pod nowymi adresami dostałem od tych kłamców odpowiedź:

informujemy, że linki zostały uruchomione zgodnie ze wskazanym harmonogramem.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.