KSeF API rozmiar pliku Base64 – walidacja

Przy wysyłaniu faktur do KSeF API 2.0 musisz podać rozmiary plików: oryginalnej faktury (invoiceSize) i zaszyfrowanej faktury (encryptedInvoiceSize). Rozmiar zaszyfrowanej faktury to rozmiar pliku w bajtach, nie rozmiar Base64.

Obliczanie rozmiaru pliku w KSeF API

Przy wysyłaniu faktury do KSeF API 2.0 musisz podać rozmiary plików: invoiceSize (rozmiar oryginalnej faktury w bajtach) oraz encryptedInvoiceSize (rozmiar zaszyfrowanej faktury w bajtach).

Ważne: encryptedInvoiceSize to rozmiar pliku zaszyfrowanego w bajtach, nie rozmiar ciągu Base64. Jeśli faktura jest kodowana w Base64 przed wysłaniem, rozmiar Base64 jest większy (około 33% większy niż oryginalny plik), ale encryptedInvoiceSize nadal odnosi się do rozmiaru binarnego pliku zaszyfrowanego.

Błąd 'Nieprawidłowy rozmiar pliku' lub 'Content length does not match the file size' oznacza, że podany rozmiar nie odpowiada rzeczywistemu rozmiarowi przesłanego pliku.

Instrukcja krok po kroku

1. Oblicz rozmiar oryginalnej faktury

Oblicz rozmiar oryginalnej faktury XML w bajtach (invoiceSize). To rozmiar pliku przed szyfrowaniem, wyrażony w bajtach. Użyj długości ciągu znaków w bajtach (dla UTF-8) lub rozmiaru pliku, jeśli pracujesz z plikami.

2. Zaszyfruj fakturę

Zaszyfruj fakturę algorytmem AES-256-CBC zgodnie z wymaganiami KSeF. Szyfrowanie zwiększa rozmiar pliku o dopełnienie (padding) PKCS#7, więc zaszyfrowany plik będzie nieco większy niż oryginalny.

3. Oblicz rozmiar zaszyfrowanej faktury

Oblicz rozmiar zaszyfrowanej faktury w bajtach (encryptedInvoiceSize). To rozmiar binarnego pliku zaszyfrowanego, nie rozmiar ciągu Base64. Jeśli plik jest kodowany w Base64, rozmiar Base64 jest większy, ale encryptedInvoiceSize odnosi się do rozmiaru binarnego.

4. Zakoduj w Base64 (jeśli wymagane)

Jeśli API wymaga kodowania Base64, zakoduj zaszyfrowany plik w Base64. Pamiętaj, że rozmiar Base64 jest większy (około 33% większy), ale encryptedInvoiceSize nadal odnosi się do rozmiaru binarnego pliku zaszyfrowanego.

5. Wyślij z poprawnymi rozmiarami

Wyślij fakturę do API z poprawnymi rozmiarami: invoiceSize (rozmiar oryginalnej faktury w bajtach) oraz encryptedInvoiceSize (rozmiar zaszyfrowanej faktury w bajtach, nie Base64). Sprawdź, czy rozmiary odpowiadają rzeczywistemu rozmiarowi przesłanego pliku.

Najczęstsze problemy i rozwiązania

Błąd 'Nieprawidłowy rozmiar pliku' lub 'Content length does not match the file size'

Sprawdź, czy podajesz rozmiar binarnego pliku zaszyfrowanego (encryptedInvoiceSize), nie rozmiar ciągu Base64. Rozmiar Base64 jest większy (około 33% większy), ale encryptedInvoiceSize odnosi się do rozmiaru binarnego. Zweryfikuj, czy rozmiar odpowiada rzeczywistemu rozmiarowi przesłanego pliku.

Różnica między rozmiarem binarnym a Base64

Kodowanie Base64 zwiększa rozmiar pliku o około 33% (4 znaki Base64 reprezentują 3 bajty binarne). encryptedInvoiceSize odnosi się do rozmiaru binarnego pliku zaszyfrowanego, nie rozmiaru ciągu Base64. Jeśli plik jest kodowany w Base64 przed wysłaniem, rozmiar Base64 jest większy, ale encryptedInvoiceSize nadal odnosi się do rozmiaru binarnego.

Jak obliczyć rozmiar zaszyfrowanej faktury?

Zaszyfruj fakturę algorytmem AES-256-CBC i oblicz rozmiar binarnego pliku zaszyfrowanego w bajtach. To jest encryptedInvoiceSize. Jeśli plik jest kodowany w Base64, rozmiar Base64 jest większy, ale encryptedInvoiceSize odnosi się do rozmiaru binarnego. Użyj długości binarnego pliku zaszyfrowanego, nie długości ciągu Base64.

Rozmiar po szyfrowaniu jest większy

Tak, szyfrowanie AES-256-CBC z dopełnieniem PKCS#7 zwiększa rozmiar pliku. Rozmiar zaszyfrowanego pliku jest większy niż oryginalny o wielokrotność rozmiaru bloku (16 bajtów dla AES). encryptedInvoiceSize to rozmiar binarnego pliku zaszyfrowanego, nie oryginalnego.

Rozmiar oryginalnej faktury (invoiceSize)

invoiceSize to rozmiar oryginalnej faktury XML w bajtach przed szyfrowaniem. Rozmiar jest wyrażony w bajtach i odnosi się do pliku XML w kodowaniu UTF-8. Użyj długości ciągu znaków w bajtach (dla UTF-8) lub rozmiaru pliku, jeśli pracujesz z plikami.

Rozmiar zaszyfrowanej faktury (encryptedInvoiceSize)

encryptedInvoiceSize to rozmiar binarnego pliku zaszyfrowanego w bajtach, nie rozmiar ciągu Base64. Jeśli plik jest kodowany w Base64 przed wysłaniem, rozmiar Base64 jest większy (około 33% większy), ale encryptedInvoiceSize nadal odnosi się do rozmiaru binarnego pliku zaszyfrowanego. Ważne: nie używaj rozmiaru Base64 jako encryptedInvoiceSize.

Kodowanie Base64 a rozmiar pliku

Kodowanie Base64 zwiększa rozmiar pliku o około 33% (4 znaki Base64 reprezentują 3 bajty binarne). Jeśli plik jest kodowany w Base64 przed wysłaniem, rozmiar Base64 jest większy, ale encryptedInvoiceSize odnosi się do rozmiaru binarnego pliku zaszyfrowanego, nie rozmiaru ciągu Base64. Sprawdź dokumentację API, czy kodowanie Base64 jest wymagane.

Walidacja rozmiaru

System KSeF weryfikuje, czy podany rozmiar (encryptedInvoiceSize) odpowiada rzeczywistemu rozmiarowi przesłanego pliku. Błąd 'Content length does not match the file size' oznacza, że podany rozmiar nie odpowiada rzeczywistemu rozmiarowi. Sprawdź, czy używasz rozmiaru binarnego pliku zaszyfrowanego, nie rozmiaru Base64.

FAQ

Jak obliczyć rozmiar pliku dla KSeF API?

Oblicz invoiceSize (rozmiar oryginalnej faktury XML w bajtach) oraz encryptedInvoiceSize (rozmiar binarnego pliku zaszyfrowanego w bajtach, nie rozmiar Base64). Jeśli plik jest kodowany w Base64, rozmiar Base64 jest większy, ale encryptedInvoiceSize odnosi się do rozmiaru binarnego. Użyj długości binarnego pliku zaszyfrowanego.

Czy encryptedInvoiceSize to rozmiar Base64?

Nie, encryptedInvoiceSize to rozmiar binarnego pliku zaszyfrowanego w bajtach, nie rozmiar ciągu Base64. Jeśli plik jest kodowany w Base64 przed wysłaniem, rozmiar Base64 jest większy (około 33% większy), ale encryptedInvoiceSize nadal odnosi się do rozmiaru binarnego pliku zaszyfrowanego.

Dlaczego otrzymuję błąd 'Content length does not match the file size'?

Błąd oznacza, że podany rozmiar (encryptedInvoiceSize) nie odpowiada rzeczywistemu rozmiarowi przesłanego pliku. Sprawdź, czy używasz rozmiaru binarnego pliku zaszyfrowanego, nie rozmiaru Base64. Zweryfikuj, czy rozmiar odpowiada rzeczywistemu rozmiarowi przesłanego pliku.

Jak obliczyć rozmiar po szyfrowaniu?

Szyfrowanie AES-256-CBC z dopełnieniem PKCS#7 zwiększa rozmiar pliku o wielokrotność rozmiaru bloku (16 bajtów dla AES). Oblicz rozmiar binarnego pliku zaszyfrowanego w bajtach - to jest encryptedInvoiceSize. Nie używaj rozmiaru Base64 jako encryptedInvoiceSize.

Różnica między rozmiarem binarnym a Base64

Kodowanie Base64 zwiększa rozmiar pliku o około 33% (4 znaki Base64 reprezentują 3 bajty binarne). encryptedInvoiceSize odnosi się do rozmiaru binarnego pliku zaszyfrowanego, nie rozmiaru ciągu Base64. Jeśli plik jest kodowany w Base64, rozmiar Base64 jest większy, ale encryptedInvoiceSize nadal odnosi się do rozmiaru binarnego.

Powiązane tematy

Dalsze korzystanie z tej witryny oznacza akceptację Polityki prywatności . Używamy plików cookie, aby zapewnić najlepszą jakość korzystania z naszej witryny internetowej. Przeczytaj naszą Politykę plików cookie .
Akceptuj Odrzuć