Krajowy system e-Faktur

DD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1
0

Hej, z góry chcę podziękować za wszystkie informacje które tu są zawarte. Przechodząc do pytania, czy ktoś może mi powiedzieć czy istnieje w api endpoint który zwróci mi listę nipów które nadały mojemu podmiotowi uprawnienia? Mogę sprawdzić swoje które ja nadałem ale nie widzę takiego który zwróci uprawnienia nadane mi np. do wystawiania faktur w trybie samofakturowania

S8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 81
0

Testował ktoś to delegowanie uprawnień ? Albo ja tego nie rozumiem, albo czegoś nie widzę w tej aplikacji podatnika.

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

Pytanie do javowców - dotyczy klas:

Kopiuj
public class EncryptionData {
    private final byte[] cipherKey;
    private final byte[] cipherIv;
    private final String encryptedCipherKey;
    private final EncryptionInfo encryptionInfo;
}
Kopiuj
public class EncryptionInfo {
    private String encryptedSymmetricKey;
    private String initializationVector;
}

Wie ktoś po co jest EncryptionData.encryptedCipherKey, skoro tam zawsze pakowane jest to samo co trafia do EncryptionInfo.encryptedSymmetricKey? Boję się że czegoś fundamentalnie nie rozumiem, w tym całym szyfrowaniu dlatego wolę zapytać.

VD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
1

Przykład pierwszy: wystawiam fakturę i od razu zaznaczam, że ma być offline, bo klient chce otrzymać wydruk natychmiast. Drukuję więc fakturę z dwoma kodami QR i przekazuję ją klientowi. Później – po kilku minutach lub godzinach – wysyłam ją do KSeF z odpowiednim oznaczeniem, że to faktura OFFLINE. Wszystko jest w porządku, a jeśli pojawi się jakiś błąd w XML-u, można wystawić korektę techniczną.

Drugi przypadek: wystawiam fakturę w trybie ONLINE – wysyłam ją do KSeF, ale jeszcze nie otrzymałem numeru KSeF, gdy klient prosi o wydruk. Drukuję więc ten sam dokument z dwoma kodami QR.

I tu pojawia się pytanie: czym to się właściwie różni? W obu przypadkach klient dostaje ten sam dokument z kodami QR, a różnica polega jedynie na tym, że w pierwszym wariancie faktura trafia do KSeF jako OFFLINE, a w drugim – jako ONLINE, tylko że numer KSeF nie jest jeszcze znany w momencie wydruku.

GM
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 29
0

Mam problem z obsługą podpisu przez PZ.
Wchodzę na stronę: https://moj.gov.pl/nforms/signer/upload?xFormsAppName=SIGNER&xadesPdf=false ,
następnie skrypt w przeglądarce odpala upload XML-a i dostaję błąd 500.

Dodam, że gdy to samo robię ręcznie - wszystko jest w porządku.
Gdy wymuszę przeładowanie strony z automatem, to wtedy wszystko działa ok, tak jakby czegoś brakowało za pierwszym razem.

Ktoś się spotkał z podobnym problemem i mógłby coś rozjaśnić w temacie ?

EDIT: Log z pół-automatu obsługującego wykonanie podpisu za pomocą Profilu Zaufanego:

  1. robi automatyczny upload requestu XML,
  2. naciska przycisk PODPISZ,
  3. po weryfikacji UPLOAD-u naciska przycisk PODPISZ na stronie podglądu przed podpisem,
  4. po podpisaniu requestu, naciska przycisk POBIERZ na dysk,
  5. przechwytuje ścieżkę zapisu pliku na dysku
Kopiuj
Navigating: "https://moj.gov.pl/nforms/signer/upload?xFormsAppName=SIGNER&xadesPdf=false"
Status(200): "https://moj.gov.pl/nforms/signer/upload?xFormsAppName=SIGNER&xadesPdf=false"
Script execution: "UploadFileScript" {FileSize: 304}
Base64: "PD94bWwgdmVy...=="
Requested: "https://moj.gov.pl/nforms/rest/signer/file"
Script execution status(0): "https://moj.gov.pl/nforms/signer/upload?xFormsAppName=SIGNER&xadesPdf=false"
Requested: "https://moj.gov.pl/nforms/rest/signer/file/validateDocument"
Request status(200): "https://moj.gov.pl/nforms/rest/signer/file"
Request status(204): "https://moj.gov.pl/nforms/rest/signer/file/validateDocument"
Script execution: "SignClickScript"
Script execution status(0): "https://moj.gov.pl/nforms/signer/upload?xFormsAppName=SIGNER&xadesPdf=false"
Navigating: "https://moj.gov.pl/nforms/signer/signDocument"
Redirecting: "https://moj.gov.pl/uslugi/pages/pz/sign/send"
Redirecting: "https://podpis.gov.pl/ui/wp/vfrvavqwbp5h4qmd48a5bkllpduantw3h8kqkb2i/preview?tpOnly=true"
Requested: "https://podpis.gov.pl/ui/wp/assets/i18n/pl.json?v=1762424962412"
Status(200): "https://podpis.gov.pl/ui/wp/vfrvavqwbp5h4qmd48a5bkllpduantw3h8kqkb2i/preview?tpOnly=true"
Request status(200): "https://podpis.gov.pl/ui/wp/assets/i18n/pl.json?v=1762424962412"
Requested: "https://podpis.gov.pl/api/srlm/sign-requests/vfrvavqwbp5h4qmd48a5bkllpduantw3h8kqkb2i/lock"
Request status(200): "https://podpis.gov.pl/api/srlm/sign-requests/vfrvavqwbp5h4qmd48a5bkllpduantw3h8kqkb2i/lock"
Requested: "https://podpis.gov.pl/api/srlm/sign-requests/vfrvavqwbp5h4qmd48a5bkllpduantw3h8kqkb2i/preview"
Requested: "https://podpis.gov.pl/api/verif/sign-requests/vfrvavqwbp5h4qmd48a5bkllpduantw3h8kqkb2i/files/aa32c8ab36b9bb619d9140c45d6b70abb9f181e48e2b5204a280810dad48cd92"
Request status(200): "https://podpis.gov.pl/api/srlm/sign-requests/vfrvavqwbp5h4qmd48a5bkllpduantw3h8kqkb2i/preview"
Request status(201): "https://podpis.gov.pl/api/verif/sign-requests/vfrvavqwbp5h4qmd48a5bkllpduantw3h8kqkb2i/files/aa32c8ab36b9bb619d9140c45d6b70abb9f181e48e2b5204a280810dad48cd92"
Script execution: "SignValidateClickScript"
Script execution status(0): "https://podpis.gov.pl/ui/wp/vfrvavqwbp5h4qmd48a5bkllpduantw3h8kqkb2i/preview?tpOnly=true"
Requested: "https://podpis.gov.pl/api/srlm/sign-requests/vfrvavqwbp5h4qmd48a5bkllpduantw3h8kqkb2i/valid-expiration"
Request status(200): "https://podpis.gov.pl/api/srlm/sign-requests/vfrvavqwbp5h4qmd48a5bkllpduantw3h8kqkb2i/valid-expiration"
Requested: "https://podpis.gov.pl/api/scpz/sign-requests/vfrvavqwbp5h4qmd48a5bkllpduantw3h8kqkb2i/authorization-metadata"
Request status(401): "https://podpis.gov.pl/api/scpz/sign-requests/vfrvavqwbp5h4qmd48a5bkllpduantw3h8kqkb2i/authorization-metadata"
Requested: "https://podpis.gov.pl/api/srlm/sign-requests/vfrvavqwbp5h4qmd48a5bkllpduantw3h8kqkb2i/preview/unlock"
Request status(200): "https://podpis.gov.pl/api/srlm/sign-requests/vfrvavqwbp5h4qmd48a5bkllpduantw3h8kqkb2i/preview/unlock"
Navigating: "https://podpis.gov.pl/api/wpam/init"
Status(200): "https://podpis.gov.pl/api/wpam/init"
Navigating: "https://login.gov.pl/login/SingleSignOnService"
Status(200): "https://login.gov.pl/login/SingleSignOnService"
...
Redirecting: "https://moj.gov.pl/uslugi/signer/download"
Requested: "https://moj.gov.pl/nforms/rest/signer/file/validateSignedDocument"
Request status(200): "https://moj.gov.pl/nforms/rest/signer/file/validateSignedDocument"
Status(200): "https://moj.gov.pl/uslugi/signer/download"
Script execution: "DownloadScript"
NewWindowRequested
Navigating: "about:blank"
Status(0): "about:blank"
Script execution status(0): "https://moj.gov.pl/uslugi/signer/download"
Requested: "https://moj.gov.pl/nforms/rest/signer/file/random"
Request status(200): "https://moj.gov.pl/nforms/rest/signer/file/random"
Navigating: "https://pz.gov.pl/pz/rest/downloadSignedDocument/...?fileName=..."
Status(0): "about:blank"
Download(Type: text/xml, Size: 6524, Path: C:\Users\{user}\Downloads\request (7).xml): https://pz.gov.pl/pz/rest/downloadSignedDocument/...?fileName=...
AC
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1
0

Cześć,
Wygenerowałem sobie certyfikat ksef. Zrobiłem zniego p12, który używam do podpisywania xml-a. Robię to w pythonie mam kod który podpisuje mi xml-a do autoryzacji. Niestety dostaje błąd:
{
"exception": {
"exceptionDetailList": [
{
"exceptionCode": 9103,
"exceptionDescription": "Przekroczona liczba dozwolonych podpisów."
}
],
"serviceCode": "00-6af856ef6ad6d3c6891c44dc59b8b256-13a99b439a4fc6e9-00",
"timestamp": "2025-11-05T11:59:02.6266357Z"
}
}

Poniżej mój xml:

<?xml version='1.0' encoding='utf-8'?> <authtokenrequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://ksef.mf.gov.pl/auth/token/2.0"> <challenge>20250625-CR-20F5EE4000-DA48AE4124-46</challenge> <contextidentifier> <nip>5265877635</nip> </contextidentifier> <subjectidentifiertype>certificateSubject</subjectidentifiertype> <ds:signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" id="Signature-9707709"> </ds:signature> <ds:signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" id="SignXMLSignature984E8085"><ds:signedinfo><ds:canonicalizationmethod algorithm="http://www.w3.org/2006/12/xml-c14n11" /><ds:signaturemethod algorithm="http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha256" /><ds:reference uri="" id="SignXMLReference40B26B33"><ds:transforms><ds:transform algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><ds:transform algorithm="http://www.w3.org/2006/12/xml-c14n11" /></ds:transforms><ds:digestmethod algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /><ds:digestvalue>FVzsEo6PA3GXLj3gOK8mYmwEo4qCO3IFUaLiwcEVqqA=</ds:digestvalue></ds:reference><ds:reference uri="#SignXMLSignature984E8085-SignedPropertiesB1574F58" type="http://uri.etsi.org/01903#SignedProperties"><ds:digestmethod algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /><ds:digestvalue>A0dwcZpahUknftDrjWEv1KhYtqNumM0Rpfg/Uk9S3dU=</ds:digestvalue></ds:reference><ds:reference uri="#SignXMLCertificateE35C539C"><ds:digestmethod algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /><ds:digestvalue>CpGbMbpCXgjS2LQtRhT39vNMatYRu0P+STRds06GcWc=</ds:digestvalue></ds:reference></ds:signedinfo><ds:signaturevalue>1TEi0S39t/XFVTqqxRlBpjJFv67aTNKH+MeYhSmxqDDqjcOj1Y5jLXVNnxSg5gz7/mumn/7W1HlBpqZvIOxUlw==</ds:signaturevalue><ds:keyinfo id="SignXMLCertificateE35C539C"><ds:x509data><ds:x509certificate>MIIC4TCCAmWgAwIBAgIIAfq4QLqHFuUwDAYIKoZIzj0EAwIFADBvMQswCQYDVQQG EwJQTDEfMB0GA1UECgwWTWluaXN0ZXJzdHdvIEZpbmFuc8OzdzEnMCUGA1UECwwe S3Jham93YSBBZG1pbmlzdHJhY2phIFNrYXJib3dhMRYwFAYDVQQDDA1URVNUIEND SyBLU2VGMB4XDTI1MTEwNTExMjIyOVoXDTI3MTEwNTExMjIyOVowejELMAkGA1UE BhMCUEwxGTAXBgNVBGEMEFZBVFBMLTcxODIwNzYxMTIxITAfBgNVBAoMGEV3aXRo IEd1ZHJlIFJhaG5pIEluYy4gTzEtMCsGA1UEAwwkRXdpdGggR3VkcmUgUmFobmkg KHV3aWVyenl0ZWxuaWVuaWUpMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAELfYp 8bdLNE3B1mT1ecL893A+f7/VZeySDLUqjqUT9qyTPmAO9/ZMv55IpOyVOBwMHVmg JcSteiGjUDxISc0kiKOB3TCB2jAfBgNVHSMEGDAWgBQ6OoEQH6i0N97Bg2P7OYj6 iaQlMjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUAXOH cK/xC/9s9ykUf8oOH93DqjgwSAYDVR0fBEEwPzA9oDugOYY3aHR0cHM6Ly9rc2Vm LXRlc3QubWYuZ292LnBsL3NlY3VyaXR5L2NybC90ZXN0bWZrc2VmLmNybDAwBggr BgEFBQcBAwQkMCIwCwYGBACORgEDAgEAMBMGBgQAjkYBBjAJBgcEAI5GAQYCMAwG CCqGSM49BAMCBQADaAAwZQIxAP49C/BTir75ZhMdEDNnnE2PTtspPyEmn8JIUKDt /5fbbSzV4gnMTMksW8Sy8fiY7AIwDtwidBojhV1NSV7r5WVXeRFFYmu+O1zfU5GN F9NCYqlBNfNCHJhKEzmjxk0eq3RC </ds:x509certificate></ds:x509data></ds:keyinfo><ds:object><xades:qualifyingproperties target="#SignXMLSignature984E8085"><xades:signedproperties id="SignXMLSignature984E8085-SignedPropertiesB1574F58"><xades:signedsignatureproperties><xades:signingtime>2025-11-05T11:58:16+00:00</xades:signingtime><xades:signingcertificatev2><xades:cert><xades:certdigest><ds:digestmethod algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /><ds:digestvalue>FWsO0CQQhjtR+T0putcqjiqKH7mgdM62RbxuCxD2p/U=</ds:digestvalue></xades:certdigest></xades:cert></xades:signingcertificatev2></xades:signedsignatureproperties><xades:signeddataobjectproperties><xades:dataobjectformat objectreference="#SignXMLReference40B26B33"><xades:description>Signed with XAdES</xades:description><xades:mimetype>text/xml</xades:mimetype></xades:dataobjectformat></xades:signeddataobjectproperties></xades:signedproperties></xades:qualifyingproperties></ds:object></ds:signature></authtokenrequest>

Nie wiem gdzie szukać problemu ?

Próbowałem również wcześniej Tokenem, ale tam zawsze po enkrypcji dostawałem błąd:
{
"startDate": "2025-11-05T07:25:52.8274694+00:00",
"authenticationMethod": "Token",
"status": {
"code": 450,
"description": "Uwierzytelnianie zakończone niepowodzeniem z powodu błędnego tokenu",
"details": [
"Invalid token encoding."
]
}
}

próbuję oboma sposobami. Prośba o pomoc co robię źle :(.

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

Post żart: A może historia kołem się zatoczy i po pierwszym lutego zostanie ogłoszony tymczasowy tryb awaryjny... Tak samo jak VAT jest ciągle tymczasowo podniesiony do 23%

M4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 59
0

Posiada ktoś może jakiś xsl żeby wygenerować wizualizacje faktury ja jakiś mam ale trochę słabo to wygląda ?

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

Pałętam się po forum i githubie i nie mogę znaleźć: wie ktoś, gdzie jest lista kodów błędów aktualnych dla ksef 2.0? Był taki dla ksef 1.0:

Kopiuj
kod wyjątku : opis
9101 : Nieprawidłowy dokument.
9102 : Brak podpisu.
...itd itp
AdrianWladyka
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 9
0

Frustracja rośnie .. żonie się oberwało przy okazji :D

Jestem na samym początku i dostaje : Uncaught N1ebieski\KSEFClient\Exceptions\HttpClient\BadRequestException: 21115 Nieprawidłowy certyfikat.

próbowałem tworzyć .p12 na dziesiątki sposobów

Certyfikat mam z MCU.
Czy poza zrobieniem certyfikatu trzeba gdzieś dodatkowo nadać jakieś uprawnienia ?

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

Potrzebuję podpowiedzi dla tworzenia jsona do otwarcia sesji interaktywnej w Java. Zgodnie z dokumentacją korzystam tworzę klucz symetryczny i wektor inicjalizujący, ale za każdym razem status sesji otrzymuję
"status": {
"code": 415,
"description": "Błąd odszyfrowania dostarczonego klucza",
"details": [
"Rozszyfrowania klucza symetrycznego zakończone błędem"
]
}
Jako klucz publiczny ministerstwa wykorzystuję:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxsyeiYiWB2+KFxEpQGoN
Qa6W8Pc4kWGl8V+sBMdW3Fqh0lhKiqKfpH5RWLDmZ30EzkKJ5+IdaWYFoijhYxDB
IBhINVQKlBZvEVd6CfPJUJypa94eRO5cc6IPNI35aMhfKP/Kc4A/OiT2J4nyCz6B
V98xOXCAlyDPD73XM6O2ormL6gUb673zvjOIakf39tAPPVgWIDuX7GDZYGebN7LX
oGvjPo5YDqC2KN51ofLbO+n74iei5OaGN94Ap52vI7uzK2g/hQslOd0Avl2U1kwR
nnF0yzwbDzRrHqPCHUYxVp5nHdo+jHe1CNoa6gt0m6pn1StYcitSXKg2hTNjnes6
TQIDAQAB
-----END PUBLIC KEY-----

Generuję tak

SecretKey aesKey = generateAES256Key();
byte[] iv = generateIV(16);
String encryptedSymmetricKeyBase64 = Base64.getEncoder().encodeToString(encryptedAesKey);
String initializationVectorBase64 = Base64.getEncoder().encodeToString(iv);

private static byte[] encryptAesKeyWithRsaOaepSha256(byte[] aesKeyBytes, PublicKey publicKey) throws Exception {

    Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding", "BC");
    cipher.init(Cipher.ENCRYPT_MODE, publicKey);
    return cipher.doFinal(aesKeyBytes);
}

private static SecretKey generateAES256Key() throws Exception {
KeyGenerator kg = KeyGenerator.getInstance("AES");
kg.init(256); // 256 bits
return kg.generateKey();
}

private static byte[] generateIV(int lengthBytes) {
byte[] iv = new byte[lengthBytes];
SecureRandom sr = new SecureRandom();
sr.nextBytes(iv);
return iv;
}

Poproszę o pomysły.

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

Przed startem aplikacji (https://web2te-ksef.mf.gov.pl/) zrobiłem uwierzytelnianie certyfikatem wszystko śmigało a uwierzytelnianie ksef-token zrobiłem na wyczucie
Po starcie WWW testerzy wrócili do mnie z problemem uwierzytelniania ksef-token a ja ciągle mam dla /api/v2/auth/token/redeem po wygenerowaniu authentication_token w ksef-token

Robię identycznie jak dla certyfikatu po wygenerowaniu tokenu autoryzacyjnego

Kopiuj
{
    "exception": {
        "exceptionDetailList": [
            {
                "exceptionCode": 21301,
                "exceptionDescription": "Brak autoryzacji.",
                "details": [
                    "Operacja uwierzytelniania 20251106-AU-1BC3581000-2DE71C024D-31 nie jest w stanie umożliwiającym pobranie tokenów."
                ]
            }
        ],
        "serviceCode": "00-66090ac4c87cbb7880d0065ede37ee08-5172782cad8e629a-00",
        "timestamp": "2025-11-06T08:08:26.8206633Z"
    }
}

MA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7
0

Cześć. Chciałbym przedstawić Wam przypadek użycia do weryfikacji:

  1. Spółka z o.o (NIP1) wystawiająca faktury będzie miała program z wybudowanym API do KSEF 2.0; 1 osoba z firmy ma ZAW-FA i tworzy certyfikaty KSEF za pomocą MCU. Wcześnie ta osoba nadaje uprawnienia innym pracownikom firmy (PESEL) za pomocą API (program to musi uwzględnić, bo chyba MCU tego nie umożliwia) do pracy w KSeF
    2. Pracownicy firmy księgowej (NIP2) też muszą mieć dostęp do programu i mieć możliwość np. ściągania faktur z KSEF.
    3. Mamy 2 możliwości:
    a) osoba (ZAW FA) nadaje uprawnienia pracownikom (PESEL) firmy księgowej. NIP2 firmy księgowej nas nie interesuje. Pracownicy firmy księgowej zdobywają certyfikaty KSEF za pomocą MCU (można też zrobić API, ale po co) i korzystając z programu spóki z o.o. (NIP1) mają dostęp do faktur tej firmy.
    b) osoba (ZAW FA) nadaje uprawnienia firmie księgowej (Nadanie podmiotom uprawnień do obsługi faktur) na NIP2 za pomocą API w programie. Firma księgowa też musi mieć jakiś program, aby za pomocą API nadać uprawnienia swoim pracownikom (PESEL) do obsługi spółki z o.o. (NIP1). MCU tego taczej nie umożliwia(?)

    Dzięki za ewentulane sugestie.

S8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 81
0

Hm czy ktoś może zobaczyć na test czy jak się zaloguje Certem z MCU wygenerowanym po zalogowaniu się profilem zaufanym (czyli pesel jest identyfikatorem) moze otworzyć sesje interaktywną ?

WJ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 47
0

Dla wszystkich zainteresowanych (bo już trzeci raz pisałem samo, komentując kolejne posty): TAK, certyfikatem z MCU wygenerowanym dla PESEL można się uwierzytelnić w środowisku TEST, bo akceptuje ono każdy certyfikat. Robi się to tak:

  • NAJPIERW wywołaj endpoint testdata/person i przypisz swój PESEL do jakiegoś NIP, przesyłając w body dane: { 'nip':'<wpisz NIP>', 'pesel': '<wpisz PESEL>', 'description':'To Ja', 'isBailiff': false }
  • POTEM możesz się w kontekście tego NIP uwierzytelnić certyfikatem z MCU.
GM
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 29
0

Mam problem, podpisuję AuthTokenRequest moim PZ-tem, próbuję się zalogować do testu i dostaję odpowiedź: 401 Unauthorized.
O co chodzi, wcześniej zalogowałem się przez web-owy do testu jako właściciel, nadałem sobie na swój PESEL wszystkie uprawnienia, jako administrator, jako osoba wystawiająca faktury i pozostałe, i wraz coś jest nie tak z autoryzacją.
Sprawdzałem, czy używam tokenu prawidłowego do /auth/xades-signature i jest ok.

Ktoś może mnie poratować i naświetlić prawidłowy tok postępowania.

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

Słuchajcie, jak to jest? Jak jest JDG to ona nie może mieć firmowej pieczęci? Bo próbowałem na NIP JDG zalogować się certyfikatem z pieczęcią (na test, self-signed) i cały czas mi odrzuca, że niepoprawny.

Edit: Jednak problem jest szerszy i aktualnie żadnego certyfikatu nie umiem wygenerować, który by działał.

Próbowałem i tak:

Kopiuj
New-SelfSignedCertificate `
	-Type Custom  `
   -Subject "CN=Test KSeF, 2.5.4.97=VATPL-..., C=PL" `
   -KeyAlgorithm RSA `
   -KeyLength 2048 `
   -HashAlgorithm SHA256 `
   -KeyExportPolicy Exportable `
	-KeyUsage DigitalSignature `
   -CertStoreLocation "Cert:\CurrentUser\My" `
   -NotAfter (Get-Date).AddYears(5) `
  -NotBefore (Get-Date).AddDays(-1) `   
  -Provider "Microsoft Enhanced RSA and AES Cryptographic Provider" `
   -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3,1.3.6.1.4.1.311.10.3.13")

I tak:

Kopiuj
makecert.exe -r -pe -h 0 -n "CN=Test KSeF, 2.5.4.97=VATPL-...." /eku "1.3.6.1.5.5.7.3.3,1.3.6.1.4.1.311.10.3.13" -e 01/01/2030 -sky exchange -sv cert.pvk cert.cer
Pvk2Pfx.exe /pvk cert.pvk /spc cert.cer /pfx cert.pfx

i nic z tego :( No a obie metody mi wczesniej działały :|

N1ebieski
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 25
1

Odpowiadając @Stl86 w osobnym poście dla potomnych. Przetestowałem dzisiaj sytuację w której Podmiot A nadał uprawnienie z canDelegate Podmiotowi B, a Podmiot B przekazał te uprawnienie Podmiotowi C, a ten wysłał fakturę w kontekście Podmiotu A i mogę z całą stanowczością potwierdzić, że to działa.

Jeśli ktoś zna PHP to tutaj jest test integracyjny, który to potwierdza > https://github.com/N1ebieski/ksef-php-client/blob/main/tests/Feature/Resources/Permissions/Entities/EntitiesResourceTest.php#L175-L332

Czyli czysto teoretycznie - można zbudować system, który opiera się wyłącznie na 1 certyfikacie przechowywanym w systemie, a każdy końcowy użytkownik tego systemu (np. pan Janusz który zlecił księgowość podmiotowi pani Halince, a ta chce skorzystać z naszego systemu) po prostu przekazuje końcowe uprawnienie canDelegate dla właściciela tego certyfikatu.

BTW. Do https://github.com/N1ebieski/ksef-php-client wrzuciłem dzisiaj większość endpointów od uprawnień. Powoli zbliżamy się do końca.

V2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 28
0

W paczce max. 100MB wysyłanej wsadowo, to ile Wam się mieściło zwykle faktur?
I ten limit 100MB to 10 * 1000 * 1000 B czy 10 * 1024 * 1024 B?

K5
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
0

Witam,
pewnie to już gdzieś zostało napisane, ale chciałbym się upewnić, że https://web2te-ksef.mf.gov.pl/ służy do generowania tokenów wyłącznie dla wersji testowej.

GB
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 27
0

Czy znany jest wzór na obliczenie sumy kontrolna ostatnie cyfry IdWew? Jezeli tak, to gdzie to można znaleźć lub jaki jest?

CZ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6
0
gbbsoft napisał(a):

Czy znany jest wzór na obliczenie sumy kontrolna ostatnie cyfry IdWew? Jezeli tak, to gdzie to można znaleźć lub jaki jest?
public static string GenerujIdJednostki(string fourDigits)
{
if (fourDigits == null || fourDigits.Length != 4 || !fourDigits.All(char.IsDigit))
throw new ArgumentException("Cztery cyfry wymagane (np. "0001").", nameof(fourDigits));
int d1 = fourDigits[0] - '0';
int d2 = fourDigits[1] - '0';
int d3 = fourDigits[2] - '0';
int d4 = fourDigits[3] - '0';
int sum = 1 * d1 + 3 * d2 + 1 * d3 + 3 * d4 + 7;
int check = sum % 10;
return fourDigits + check.ToString();
}

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

Czy jest limit wielkości pliku XML dla faktur "zwykłych"? Na stronach MF jest tylko informacja o max 3 MB dla faktur z załącznikami i 1 MB dla faktur RR.
W firmie, gdzie pracuję na koniec roku są wystawiane faktury zbiorcze, w których trzeba przecież wymienić wszystkie faktury korygowane. Sekcja <DaneFaKorygowanej> dla naszej długości numeracji faktur, przy załozeniu, że wszystkie faktury korygowane będą miały nr KSEF, to 261 bajtów. Sekcja będzie powtarzana od kilkuset do nawet 7-8 tys. razy. To oznacza, że plik XML będzie miał nawet 1,7-2 MB. Na pewno są firmy, które będą miały więcej wymienionych faktur korygowanych, więc plik będzie jeszcze większy.

FL4RE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 27
0

Czołem, macie jakiś NIP oprócz zbanowanego 111111111 gdzie moge sobie poćwiczyć eksport?

AE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

Mam problem z wysyłką wsadową (c#).
Dwie rzeczy:

  1. Korzystam z przykładów na CIRF i nie ważne co wpiszę w templatePath i gdzie wgram pliki to dostaję błąd w GenerateInvoicesInMemory, że nie można znaleźć templates.
  2. A tak w ogóle to jak przekazać informację o lokalizacji faktur do wysłania? W PrepareAndOpenBatchSessionAsync trzeba podać TotalInvoices, PartQuantity itd. Jakieś tam domyślne dane są, ale czy to trzeba wcześniej przygotować?
ZI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 242
0

Nie potrafie nigdzie znalezc informacji o takim przypadku wiec moze ktos na coś trafil.
Wystawiam sobie faktury na urządzeniu offline na certyfikat firmy. Urzadzenie nie ma aktualnie dostepu do internetu bedzie mialo dopiero za jakis czas.
Ktos nie dopatrzył, że jeszcze jakies urządzenie korzysta z danego certyfikatu i go uniewaznił. Urządzenie nie moglo sie o tym dowiedziec i wystawiało dalej faktury offline z tym certyfikatem.
Jak sie w takiej sytuacji zachowac kiedy bede mial faktury offline wystawione juz po dacie waznosci certyfikatu? Czy system przyjmie takie faktury jesli przy wysyłaniu bede sie autoryzował poprawynm certem? Ktos z was sprawdzał taki przypadek?

S8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 81
0

Jakby co to kody QR mozna sprawdzić. Działa już to https://ksef-test.mf.gov.pl/client-app/{HASHE_ITD}

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

Jest ósma (od udostępnienia API) aktualizacja: https://github.com/CIRFMF/ksef-docs/blob/2.0.0-RC5.7/api-changelog.md
Tym razem krótko :)

  1. Zmiana w wysyłkach wsadu (5.12 usunięte zostanie bezsensowne pole z nazwą części paczki)
  2. Doszedł status HTTP 550 jako błąd w operacjach asynchronicznych (ciekawe, bo w sumie nie wiem, z czego to wynikło)
  3. Poprawiono dokumentację
Pavel Misko
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 17
0

HELP!

1 -- Pytanie dotyczące certyfikatów KSEF.
Nie rozumiem, jak działa autoryzacja za pomocą certyfikatu KSEF.
Czy użytkownik musi w jakiś sposób podpisać XML certyfikatem KSEF, czy po prostu załadować certyfikat do mojego systemu?

2 -- Pytanie dotyczące PZ
Użytkownik zalogował się do mojego systemu, na przykład za pomocą PZ, otrzymał accessToken i refreshToken. Co mam zrobić po 7 dniach, kiedy refreshToken wygaśnie? Kto i jak rozwiązuje kwestię ciągłej autoryzacji?

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

Kwestia faktury offline.
Jeśli wystawiając fakturę chcemy natychmiast wydrukować ją klientowi najlepiej wystawiać ją jako offline. Wtedy nie martwimy się, że ksef zwisł, drukujemy dwa QR i cześć.
Co w przypadku, kiedy wystawiliśmy jako offline, wysłaliśmy i jednak została natychmiast przetworzona oraz nadany został numer ksef? Czy dopuszczalne jest, żeby na wydruku offline z dwoma QR był także numer ksef? Czy może w takim wypadku nie trzeba drukować faktury offline tylko standardową wizualizację (mimo, że faktura została profilaktycznie wysłana z flagą offlineMode=true)? Czy może w drugą stronę: wysłana z offlineMode=true to ma być wydrukowana jako offline mimo, że znamy numer ksef?

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.