Comments (20)
będzie będzie.. po prostu obecnie pracuję nad dokumentacją (jest nawet od tego branch) muszę dorobić github action żeby zbudowana dokumentacja dołączała się do binarki oraz wysyłała na serwer no i wciąż muszę dorobić logowanie. Ja to serio robię po godzinach :D
from ksef.
Super, właśnie z tej dokumentacji dowiedziałem się o opcji: ksef download-pdf
, sprawdziłem, działa!
Jak na robotę po godzinach, to jest do znakomita robota, dzięki! :)
from ksef.
zobacz najnowszego builda. oczywiście nie muszę chyba dodawać, że ta opcja jak każda inna w programie jest eksperymentalna :) w plikach znajdziesz też dokumentację w PDF
from ksef.
Dziś się nie uda sprawdzić, coś tam robią na bramce test,
from ksef.
Dziś sprawdziłem i jest jakiś problem z komendą ./ksef download-pdf
:
ksef download-pdf -i '*' -p KSeF/in/registry.yaml -token 43BF872C1A3E7DFF92CE8784329437227DFBFBF42C9DB77EF39153EA0A30C011 -xml
request URL: https://ksef-test.mf.gov.pl/api/online/Session/AuthorisationChallenge
error running download-pdf:
unable to login to interactive session: cannot retrieve gateway token: failed to unlock correct collection '/org/freedesktop/secrets/collection/login'
Jakby podanego wprost tokena nie widział. Sprawdzane na wersji 0.1.17 .
from ksef.
masz rację, zaraz to poprawię
from ksef.
mea culpa - nowy build już dostępny :)
from ksef.
To teraz OK:
ksef download-pdf -i '*' -p KSeF/in/registry.yaml -token 43BF872C1A3E7DFF92CE8784329437227DFBFBF42C9DB77EF39153EA0A30C011 -xml
request URL: https://ksef-test.mf.gov.pl/api/online/Session/AuthorisationChallenge
set token 800ea34f825460625b6e69a282fa44c77550d91c53f0147126c1e6baffec7c51
request URL: https://ksef-test.mf.gov.pl/api/online/Session/Status/20231218-SE-8ED08D533F-175E046D14-97
session status code = 100
request URL: https://ksef-test.mf.gov.pl/api/online/Session/Status/20231218-SE-8ED08D533F-175E046D14-97
session status code = 310
request URL: https://ksef-test.mf.gov.pl/api/online/Session/Status/20231218-SE-8ED08D533F-175E046D14-97
request: &{Method:GET URL:https://ksef-test.mf.gov.pl/api/online/Invoice/Get/9999999999-20231218-1F8BE23107D8-28 Proto:HTTP/1.1 ProtoMajor:1 ProtoMinor:1 Header:map[Sessiontoken:[800ea34f825460625b6e69a282fa44c77550d91c53f0147126c1e6baffec7c51]] Body:<nil> GetBody:<nil> ContentLength:0 TransferEncoding:[] Close:false Host:ksef-test.mf.gov.pl Form:map[] PostForm:map[] MultipartForm:<nil> Trailer:map[] RemoteAddr: RequestURI: TLS:<nil> Cancel:<nil> Response:<nil> ctx:{emptyCtx:{}}}
request: &{Method:GET URL:https://ksef-test.mf.gov.pl/api/online/Invoice/Get/9999999999-20231218-84443461222D-8C Proto:HTTP/1.1 ProtoMajor:1 ProtoMinor:1 Header:map[Sessiontoken:[800ea34f825460625b6e69a282fa44c77550d91c53f0147126c1e6baffec7c51]] Body:<nil> GetBody:<nil> ContentLength:0 TransferEncoding:[] Close:false Host:ksef-test.mf.gov.pl Form:map[] PostForm:map[] MultipartForm:<nil> Trailer:map[] RemoteAddr: RequestURI: TLS:<nil> Cancel:<nil> Response:<nil> ctx:{emptyCtx:{}}}
request: &{Method:GET URL:https://ksef-test.mf.gov.pl/api/online/Invoice/Get/9999999999-20231217-0DD168712B3E-93 Proto:HTTP/1.1 ProtoMajor:1 ProtoMinor:1 Header:map[Sessiontoken:[800ea34f825460625b6e69a282fa44c77550d91c53f0147126c1e6baffec7c51]] Body:<nil> GetBody:<nil> ContentLength:0 TransferEncoding:[] Close:false Host:ksef-test.mf.gov.pl Form:map[] PostForm:map[] MultipartForm:<nil> Trailer:map[] RemoteAddr: RequestURI: TLS:<nil> Cancel:<nil> Response:<nil> ctx:{emptyCtx:{}}}
Natomiast chciałem pobrać faktury "własne" i takie coś mam:
ksef download -t -income -d KSeF/invoce -start-date 2023-12-17 -token 43BF872C1A3E7DFF92CE8784329437227DFBFBF42C9DB77EF39153EA0A30C011request URL: https://ksef-test.mf.gov.pl/api/online/Session/AuthorisationChallenge
error running download:
unable to login: unexpected response code: 400 != 2xx or err: <nil>
Choć może "oni" tam coś na tej bramce testowej mieszają, bo nawet na sesji interaktywnej tych faktur typu 3 nie mogę zobaczyć.
from ksef.
coś mi się wydaje, że powodem tego błędu jest to że przy opcji download
musisz i tak podać numer NIP, nawet jak podajesz token - bo klient musi się zalogować do KSeF a NIP jest częścią wyzwania autoryzacyjnego. spróbowałem na swoich fakturach i przeszło. NIP-u nie musisz podawać jedynie w przypadku opcji -refresh
bo wtedy wszystkie parametry są zapisane do pliku registry.yaml
. pewnie to jest kandydat do poprawki - na zasadzie że jeśli nie podałeś nipu a nie ma opcji refresh to program powinien wyrzucić komunikat o błędnym wykonaniu
from ksef.
acha, również potwierdzam że nie jestem w stanie pobrać ani faktur z typem 3 ani tych autoryzowanych (na oryginalnej aplikacji KSeF).
from ksef.
Dzięki, rzeczywiście trzeba podać nip, sorry mój błąd.
Jakaś sygnalizacja błędu by się przydała, bo miałem błędną fakturę i dopiero próba pobrania upo dawała błąd,
wysyłka przechodziła bez żadnej informacji o błędzie.
Ta stronka z dokumentacją bardzo fajna!
from ksef.
tak, tylko akurat tutaj obawiam się że nic nie jestem w stanie zrobić (tj. jeśli chodzi o wysyłkę błędnej faktury) ponieważ wysyłka w trybie interaktywnym jest asynchroniczna. innymi słowy o ile KSeF po swojej stronie nie będzie miał jakiegoś błędu z bazą danych czy czegoś podobnego to wysyłka faktury (nawet błędnej) zawsze da status 200 / 201. dopiero po odpaleniu komendy status dowiesz się czy została sparsowana. Udało mi się zauważyć jeszcze to, że kiedy plik XML z fakturą wrzucam przez formularz webowy to w konsoli (zakładka network) da radę wyśledzić bardziej szczegółowe błędy których klient KSeF nie wyświetla - co jest pomocne bo wtedy możesz się zorientować mniej więcej co jest nietak w przesyłanej fakturze. to jest wywołanie o nazwie albo upload albo log, nie pamiętam do końca ale jak rozwiniesz sobie tą zakładkę network to napewno się zorientujesz. a jeśli nie to daj znać, podeślę screeny.
from ksef.
Szkoda, myślałem że api daje jakąś odpowiedź OK lub BAD oprócz kodu 200.
W sumie trzeba zadbać żeby faktura była poprawna i tyle.
Teraz nie pozostaje nic innego niż używać, choć gdzieś tam czytałem że ksef może być jeszcze bardziej opóźniony.
from ksef.
chyba nawet wysyłka wsadowa / batch też jest asynchroniczna - różnica jest tylko taka że jeśli we wsadowej coś pójdzie nie tak to odrzucana jest cała grupa faktur. w przypadku wysyłki interaktywnej myślę, że musiałbym dorobić coś takiego że jeśli wysyłasz faktury z tego samego katalogu to program omija te które już zostały zaraportowane i został im nadany numer KSeF. oprócz tego chciałem dorobić wizualizację w PDF ale własną a nie tą z ministerstwa ale to wbrew pozorom będzie trochę roboty. to co jeszcze czytałem że ma się zmienić to że ministerstwo planuje zrezygnować z tokenów na rzecz certyfikatów. z jednej strony spoko bo może umożliwiłoby to generowanie kodów QR faktycznie w trybie offline a z drugiej strony zastanawiam się jak to będzie się mieć do integracji jaką będzie mieć np. infakt / fakturownia czy coś podobnego bo wtedy chyba oni musieliby trzymać u siebie klucz prywatny do certyfikatu klienta
from ksef.
Miałem zapytać/sprawdzić. Czyli powinno być tak, że jak wyślę fakturę(y) i uda się pobrać upo, to trzeba usunąć/przenieść z katalogu "wysyłkowego" te wysłane faktury? Z tą wizualizacją faktury w PDF to faktycznie będzie robota, niektórzy nie zwracają wcale uwagi na wygląd, a inni wydziwiają i chcą takich "ozdóbek" (loga, ramki, dopiski, itd.) że głowa mała.
Te certyfikaty i usuwanie tokenów 6 miesięcy przed startem systemu to tylko czubek bałaganu jaki panuje w temacie ksef.
from ksef.
no właśnie w tej chwili trzeba je usunąć ale w moim rozumieniu to jest błąd tj. niedopracowanie programu. bo powinno być tak (tzn. tak mi się intuicyjnie wydaje) że katalog wysyłkowy masz jeden na sesję i dzięki temu że jest plik rejestru (czyli taka pseudo baza danych) to jak po raz kolejny uruchomisz komendę upload (bo np. masz jakieś faktury do poprawki) to program nie wysyła tych faktur które już raz wysłał. na marginesie na środowisku testowym jest tak że jak wyślesz drugi raz taką samą fakturę (nawet z taką samą datą wysyłki) to systemowi to nie przeszkadza i w KSeF pojawia się duplikat. pytałem ich o to ale mi nie odpisali.
zastanawiałem się też czy warto dorobić jakieś pseudo GUI (myślałem o svelte) do programu ale brutalnie mówiąc mam wrażenie że program jest na tyle mało używany że nie ma to sensu :D i wolę skupić się na logowaniu i wyczyszczeniu kodu.
from ksef.
p.s. certyfikaty mogłyby paradoksalnie być zaletą z tego względu że za pomocą certyfikatu mógłbyś podpisać skrót faktury a co za tym idzie mógłbyś faktycznie, realnie offline wygenerować QRKod nawet przy niedziałającym KSeF. ze swojej strony KSeF musiałby tylko mieć operację odwrotną tj. podpisany skrót -> obiekt faktury. również pisałem w tej sprawie do ministerstwa.
co do generowania własnego PDF to można spróbować projektu puppeteer oraz drugi o jakim słyszałem to https://gotenberg.dev/ . wtedy mój program musiałby jedynie wystawiać dane faktury i QRkod a twórca szablonu by sobie te dane parsował i mógł dzięki temu zapisać własnego PDF. wówczas sam program nie musiałby mieć żadnego szablonu HTML bo każdy by sobie zaprojektował taki jaki by mu się podobał
from ksef.
no właśnie w tej chwili trzeba je usunąć ale w moim rozumieniu to jest błąd tj. niedopracowanie programu. bo powinno być tak (tzn. tak mi się intuicyjnie wydaje) że katalog wysyłkowy masz jeden na sesję i dzięki temu że jest plik rejestru (czyli taka pseudo baza danych) to jak po raz kolejny uruchomisz komendę upload (bo np. masz jakieś faktury do poprawki) to program nie wysyła tych faktur które już raz wysłał.
To byłby fajny "enhancment", coś jak refresh przy opcji download
. W sensie że korzysta z tego pliku rejestru.
na marginesie na środowisku testowym jest tak że jak wyślesz drugi raz taką samą fakturę (nawet z taką samą datą wysyłki) to systemowi to nie przeszkadza i w KSeF pojawia się duplikat. pytałem ich o to ale mi nie odpisali.
To jest ten "bałagan" o którym pisałem!
zastanawiałem się też czy warto dorobić jakieś pseudo GUI (myślałem o svelte) do programu ale brutalnie mówiąc mam wrażenie że program jest na tyle mało używany że nie ma to sensu :D i wolę skupić się na logowaniu i wyczyszczeniu kodu.
Dla mnie niepotrzebne, zastanawiam się czy crona nie użyć do wysyłki i pobierania, lepiej skupić się na kodzie. :)
from ksef.
@kuncy7 czy ten ticket można uznać za rozwiązany ?
from ksef.
Tak, też zamykam.
from ksef.
Related Issues (19)
- wsparcie dla FA_2 HOT 3
- save-token HOT 29
- dodanie eksportu do JPK HOT 1
- Problem z kompilacją zaraz po ściagnięciu. HOT 9
- Prośba o dodanie możliwości aby plikiem żródłowym był plik VAT7M.xml pola w znacznikach html HOT 11
- upload nie działa HOT 2
- Problem z ksef status HOT 6
- wsparcie dla JSON jako źródła wejścia HOT 1
- wizualizacja własna PDF HOT 2
- tryb demona HOT 2
- [ wysyłka ] - nie wysyłanie już wysłanych faktur HOT 18
- Licencja HOT 2
- logowanie / konfiguracja
- walidacja NIP
- rozszerzenie wsparcia stawki "np" HOT 1
- adnotacje faktur kosztowych (przydatne dla księgowych)
- download pdf HOT 5
- Status 310 != 200 HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ksef.