eKasa: pridať využitie aj pre občanov

Od eKasy by som očakával, aby okrem finančnej správy z nej mal úžitok aj bežný občan, napríklad:

  1. idem z obchodu, nasnímem si QR kód aplikácou a uloží sa mi ID dokladu, papierový doklad hodím do koša.
    Toto umožňuje asi každá čítačka QR kódov, už si tak ukladám nákupy pre prípad, žeby sa realizoval bod č. 2.

  2. web stránka aj aplikácia kde odošlem uložené ID dokladov (z QR kódov) a urobí mi analýzu nákupov.

  • mesačné sumáre v ktorom obchode som koľko minul

  • možnosť priradiť do kategórií jednotlivé položky bločka, neviem či FS dostáva aj EAN kódy, alebo len text, nebol by problém “naučiť” analýzu aby si uložila kombinácie ičo=31347037 text = “citróny voľné” zaradiť do kategórie potraviny a ičo=31347037 text = “Jar citrón” do kategórie drogéria.

  • mesačné prípadne za nastavené obdobie sumáre podľa kategórií tovarov
    napríklad budem mať rýchly prehľad koľko mesačne miniem na potraviny a porovnať o koľko je to drahšie ako pred rokom

  • sumáre podľa položiek tovarov so súčtami na hmotnosť/objem
    z toho si viem urobiť ročný prehľad koľko spotrebujem soli, cukru, mlieka, mäsa, pracích práškov a podobne

  1. uzákoniť akceptovať pri reklamácii okrem originálneho bločku aj predloženie ID čísla bločku.
    napríklad po roku mi odíde žiarovka so životnosťou 30 000 hodín, tak si v zozname tovarov vyhľadám slovo LED a tak nájdem svoj bloček, ktorý použijem pri reklamácii. Obchodník si podľa ID bločku vyhľadá u seba alebo vo FS daný bloček a nemusím ho mať odložený papierovo.

Na načítanie údajov z bločka už slúži aplikácia https://play.google.com/store/apps/details?id=sk.financnasprava.opd ale okrem zobrazenia na obrazovke nič iné nevie.
Presne takéto funkcie žiadajú aj v komentároch.

Pre začiatok by stačilo aby (po vložení ID dokladu na webe, alebo nasnímaní QR kódu v aplikácii) všetky údaje z bločka vedelo exportovať/uložiť v rozumnej štruktúre a reporty si urobím.

6 Likes

Momentalne s @peter_k v SD pracujeme na tom, aby financna sprava spristupnila oficialne API na taketo blocky. To API uz sice existuje (kedze web aj mobilna apka ho pouziva), ale nie je oficialne verejne. FS sa zatial nebrani tomu, aby ho v regulovanom rezime pouzivali aj ine aplikacie. Napriklad je dobry scenar, ze “uctovnicke vylozim pol kila blockov pred danovim priznanim a ona nasnima QR kody a je to vybavene v uctovnictve”. Toto je win-win pre vsetkych.

Ak bude taketo API dostupne oficialne, tak nic nebrani tomu, aby taketo aplikacie na trhu hned vznikli. Zacat sa da uz teraz.

9 Likes

Ahoj, pohlo sa nieco s tym API? Na webe Financnej spravy ho neviem najst.
Jedina moznost je odsledovat komunikaciu, ktoru robi web aplikacia?

Zatial nic oficialne nie je vonku, ale kedze sa sefom IT na FS stal Lukas Sojka a pomahat mu ma @Jozef_Ivanic, tak sa mozno dockame, ze to oficialne povolia pouzivat. Ono tomu vlastne vobec nic nebrani, len treba zverejnit dokumentaciu a povedat “mozte!”.

1 Like

Aké info o tých bločkoch to dáva? Má ten QR kód dosť entropie aby to nebolo enumerovateľné? Keď vidím takéto API otvorené z tak citilivého systému ako eKasa tak sa začínam báť.

Ved skus. https://opd.financnasprava.sk/

Ja tam celkom drsny rate limiter inak.

1 Like

Hej. tiez som tam nasiel nejaku obfuskaciu v tom JS, ale daju sa normalne z appky vytiahnut tie cesty aj pomerne normalne to vyuzivat. Dokonca su v appke includnute aj vsetky typy requestov ktore v eKase asi chodia a nielen tie co appka potrebuje. (je tam cela kniznica na to a neorezalo sa to len na pouzivane classy). Dufam teda ze to preslo nejakym security auditom a nieje to derave.

Rychly overview, POST na:

 https://ekasa.financnasprava.sk/mdu/api/v1/opd/receipt/find

v JSONe:

{"receiptID": "<obsah QR kodu ako string, je to tvaru '0-hexadecimalne veci'>"}

potom ako response to vypluje JSON naspat, tam uz je vsetko.

Co sa tyka tvaru pre receiptID, ten prvy znak asi bude pismeno “O”, a nie nula.
Teda aspon “https://opd.financnasprava.sk/#!/check” to berie iba s “O-” a nie s “0-”.

Co sa tyka toho API, nedari sa mi to uspesne otestovat cez Postman:
POST https://ekasa.financnasprava.sk/mdu/api/v1/opd/receipt/find
{“receiptID”:“0-AC6D5656CDC64336AD5656CDC60336E0”}

pritom cez https://opd.financnasprava.sk/#!/check to ID pokladnicneho dokladu je OK…
R.

POST cez https://reqbin.com/ a payload {"receiptId":"O-AC6D5656CDC64336AD5656CDC60336E0"} ide. Ved normalne treba otvorit chrome/firefox console, copy&paste a hotovo.

Naspat dostanes toto:

{
"returnValue": 0,
"receipt": {
    "receiptId": "O-AC6D5656CDC64336AD5656CDC60336E0",
    "ico": "17147786",
    "cashRegisterCode": "88820205189620059",
    "issueDate": "07.10.2020 16:57:12",
    "createDate": "07.10.2020 16:57:12",
    "customerId": "1005501",
    "dic": "2020518962",
    "icDph": "SK2020518962",
    "invoiceNumber": null,
    "okp": "2FD0230C-3898327F-6C7F3BD8-A9B895FF-AA157673",
    "paragon": false,
    "paragonNumber": null,
    "pkp": "MKiCXF2a9CDrhA60bxI3S9jPFTuNqtd1in6bXy6OO+jgXabFNKpNOCv9fHxAIrJBiUFT9fe/Zqd2BAD8RSijuAOull4fH/gWJevkRETPiugYD1m6n5Z6PdDPzEV1KXeosdaxbBxBFp4QlM0mvfod/EH0w/2GDiaD1HA4AHRxwXdLgqBdl1ISISU1dAlissTFPhxABVs3XrzAI7KUNthfh7m1Vm754+deM7ImLcSNCOM9bRvanLIgT83zHyYh4mZIKRBEr4Yt6iKivZIGcmZP/6602MvfJNYT1/VuyRQOo/wcg/tTUHifl819lS62VTmZDELjHvGl66aqGbqQQpn1bw==",
    "receiptNumber": 1570,
    "type": "PD",
    "taxBaseBasic": 11.4700,
    "taxBaseReduced": 2.2100,
    "totalPrice": 16.2000,
    "freeTaxAmount": null,
    "vatAmountBasic": 2.3000,
    "vatAmountReduced": 0.2200,
    "vatRateBasic": 20.0000,
    "vatRateReduced": 10.0000,
    "items": [{
        "name": "REZY KAKAOVE EXT",
        "itemType": "K",
        "quantity": 3.0000,
        "vatRate": 20.00,
        "price": 1.330
    }, {
        "name": "OCOT 0.8% 1L FRU",
        "itemType": "K",
        "quantity": 1.0000,
        "vatRate": 20.00,
        "price": 0.480
    }, {
        "name": "ROZOK 50g BEZ E",
        "itemType": "K",
        "quantity": 4.0000,
        "vatRate": 10.00,
        "price": 0.320
    }, {
        "name": "TEHLA EIDAM 30%",
        "itemType": "K",
        "quantity": 1.0000,
        "vatRate": 20.00,
        "price": 0.750
    }, {
        "name": "TEHLA EIDAM 30%",
        "itemType": "K",
        "quantity": 1.0000,
        "vatRate": 20.00,
        "price": 0.750
    }, {
        "name": "TEHLA BLOK 400G",
        "itemType": "K",
        "quantity": 1.0000,
        "vatRate": 20.00,
        "price": 3.510
    }, {
        "name": "HUBKA 2ks TOP CL",
        "itemType": "K",
        "quantity": 1.0000,
        "vatRate": 20.00,
        "price": 0.960
    }, {
        "name": "PARENICKA NEUDEN",
        "itemType": "K",
        "quantity": 1.0000,
        "vatRate": 20.00,
        "price": 1.110
    }, {
        "name": "JABLKA CERVE.II",
        "itemType": "K",
        "quantity": 0.8950,
        "vatRate": 10.00,
        "price": 0.870
    }, {
        "name": "SUS.OVSENE COKOL",
        "itemType": "K",
        "quantity": 1.0000,
        "vatRate": 20.00,
        "price": 0.380
    }, {
        "name": "SUSIENKY BRUSIEN",
        "itemType": "K",
        "quantity": 2.0000,
        "vatRate": 20.00,
        "price": 1.180
    }, {
        "name": "SUS.OVSENE COKOL",
        "itemType": "K",
        "quantity": 2.0000,
        "vatRate": 20.00,
        "price": 0.770
    }, {
        "name": "JOGURT DUETKO ce",
        "itemType": "K",
        "quantity": 2.0000,
        "vatRate": 10.00,
        "price": 0.620
    }, {
        "name": "JOGURT DUETKO JA",
        "itemType": "K",
        "quantity": 2.0000,
        "vatRate": 10.00,
        "price": 0.620
    }, {
        "name": "CAJ ZAZVOR.PROTI",
        "itemType": "K",
        "quantity": 1.0000,
        "vatRate": 20.00,
        "price": 1.350
    }, {
        "name": "CAJ ZAZVOROVY S",
        "itemType": "K",
        "quantity": 1.0000,
        "vatRate": 20.00,
        "price": 1.200
    }],
    "organization": {
        "buildingNumber": null,
        "country": "Slovensko",
        "dic": "2020518962",
        "icDph": "SK2020518962",
        "ico": "17147786",
        "municipality": "Prešov",
        "name": "MILK-AGRO, spol. s r.o.",
        "postalCode": "08046",
        "propertyRegistrationNumber": "36",
        "streetName": "Čapajevova",
        "vatPayer": true
    },
    "unit": {
        "cashRegisterCode": "88820205189620059",
        "buildingNumber": null,
        "country": "Slovensko",
        "municipality": "Prešov",
        "postalCode": "08001",
        "propertyRegistrationNumber": "36",
        "streetName": "PRJ02, Čapajevova",
        "name": null,
        "unitType": "STANDARD"
    },
    "exemption": false
},
"searchIdentification": {
    "createDate": 1605884766736,
    "bucket": 0,
    "internalReceiptId": "O-AC6D5656CDC64336AD5656CDC60336E0",
    "searchUuid": "ea389f20-2b41-11eb-bae2-e159335e628c"
}

}

Zda sa, ze niektore firmy si tazku hlavu s licenciami nerobia a rovno API pouzivaju.

Zacat sa da uz teraz.

asi ta niekto zobral doslovne:)

2 Likes

Ved ale zacat, nie to spustit! :smiley:

Mohli by zmeniť zákon a akceptovať pri reklamácii okrem originálneho bločku aj predloženie ID čísla bločku. Obchodník si to vyhľadá u seba, alebo na opd.financnasprava.sk

2 Likes

Myslím, že nikde v zákonoch nie je povinnosť predložiť pri reklamácii (originálny) doklad o kúpe. Je pravda, že doklad o kúpe postačuje namiesto záručného listu ak to povaha veci umožňuje, ale to sa týka povinnosti zo strany predávajúceho. Pri reklamácii je to skôr o praxi, že namiesto handrkovania sa o to, či vec bola kúpená naozaj u prijímateľa reklamácie, sa človek preukáže bločkom, ale nie je úprava na to, že by nemohol mať takúto zosnímanú podobu, predsalen o originalite dokladu svedčí práve platné ID…

2 Likes

par dni dozadu som pisal na FS - odpoved je stale zamietava… vid. odpoved cele znenie:

Dobrý deň,

v súčasnosti stále platí stanovisko k možnosti sprístupnenia služby overenia dokladu tretím stranám, t.z. nie je možné poskytnúť API služby Over doklad tretím stranám.

Požiadavku evidujeme a vyvíjame aktivity smerujúce k zmene stanoviska. Zmena je však podmienená novelizáciou príslušného zákona.

Pekný deň

S pozdravom
JUDr. Martin Ďuračík
Centrum podpory pre dane
Finančné riaditeľstvo SR

mam tu blocek - zacina na V-

teraz by ma zaujimalo, ci je O- kod len pre firmy, a V- pre zivnostnikov, alebo su nejake dalsie formaty…

len co ked FS odpovie zamietavo na vsetko co sa pytame ? za nase prachy si vybudovali system, ale pozerat sa do neho nemozeme… :frowning:

blocek pre test:

V-766D712F48DB4C36AD712F48DBCC366A

p.s. pisem si sam nejaku web-appku na citanie - uz mam zmaknute vypis poloziek v tabulke (nasledovat bude import do MySQL DB), mam tam nejaku kontrolu vstupu pre 1 O-kod:

je to check pre input vo forme

  • takze dalsia uloha na vianoce - davkove spracovanie - otazka bude ten BAN-RATE - kolko requestov mi to povoli - nevie niekto ? dik.
1 Like

Pravdepodobne O je ORP pokladnica klasická e-kasa.
V je VRP pokladnica cez web vrp.financnasprava.sk alebo ich appku.

1 Like

je to mozne, bola to paninka co ma klobucnictvo - a predavala “na stande” v Laugo - normalne rozlozena na koridore ako to tak mavaju…

kto by vedel dalsie formaty moze pisat… :slight_smile:

Mám odložených 120 kódov s bločkov, všetky majú O-, iba jeden offline doklad má veľmi dlhé číslo
6f500cbe-3b2817ea-17a22fbc-b634fcf9-343770da:88810206739620001:201218112655:2572:2.29

Zatiaľ ich ukladám do poznámkového bloku v mobile, až raz bude niečo schopné na analýzu nákupov.

prave idem luskat batch-reading… nevie niekto aky je ten BAN-RATE ?