Evaluacija fiskalnog API provajdera
Kada se poredi ponuda različitih provajdera elektronske fiskalizacije, u e-mail razmeni se često ponavlja šest pojmova. Ovaj tekst ih objašnjava jasno i kratko.
1. Headless
Značenje: provajder pruža isključivo API — nema nametnutog veb ili desktop interfejsa za izdavanje računa.
Zašto je bitno: e-commerce zahteva da kupac dobije račun u roku od nekoliko sekundi od kupovine. Ako rešenje nije headless, neko ručno mora pritisnuti dugme u provajderovom interfejsu — što je praktično neprimenjivo za onlajn scenarij. Headless znači da vaš sistem direktno poziva API, dobija PDF i QR, bez ljudske intervencije.
Signalne reči u ponudi: headless, API-first, server-to-server.
2. Per-račun naplata
Značenje: pored mesečne pretplate, naplaćuje se mala suma za svaki izdati račun.
Dva uobičajena modela:
- Stepenasti model — mesečna pretplata obuhvata prvih N računa; iznad praga plaća se po računu. Odgovara trgovcima sa predvidivim obimom.
- Paušalni model — fiksna mesečna pretplata, neograničen broj računa. Odgovara većim ili rastućim trgovcima.
Praktično: za mesečni obim ≤ 500 računa, stepenasti model je obično povoljniji; za planirani rast, paušal daje stabilnost.
3. Sandbox i self-service registracija
Sandbox je testno okruženje u kojem transakcije ne proizvode stvarne račune kod PU. Self-service sandbox znači da možete samostalno da se registrujete i odmah dobijete test API ključ, bez kontaktiranja prodaje ili potpisivanja ugovora.
Zašto je bitno: omogućava vam da sami testirate integraciju pre bilo kakve finansijske obaveze. Probaj pre nego što kupiš.
Alarm: ako provajder traži NDA i odobrenje za sandbox pristup, gubitak nekoliko dana znači i pomeranje čitavog plana integracije.
4. Podrška za Avans račune
Avans označava avansnu uplatu. Kada kupac plati pre isporuke, po strogom tumačenju propisa treba izdati Avans-Prodaja u trenutku uplate i Promet-Prodaja u trenutku isporuke — dva računa po jednoj narudžbini.
E-commerce scenario: kupac plati karticom odmah, paket se priprema i isporučuje kurirskom službom za 3-5 radnih dana. Tehnički je to Avans situacija.
Praksa: pristupi na tržištu se razlikuju, usklađeni put je podržati Avans. Mogućnost provajdera da ima Avans modul ili Avans ugrađen je presudna za pravilnu primenu.
5. Idempotencija
Značenje: ako se isti zahtev ponovi (zbog mrežnog timeout-a), provajder prepoznaje duplikat i vraća već izdat račun umesto da izda novi.
Zašto je bitno: bez idempotencije, ponovni pokušaj rezultira duplim računom za istu porudžbinu → greška u evidenciji poreza i moguće dvostruko zaduženje kupca.
Implementacija kod provajdera: klijent šalje jedinstveni ID u zahtevu (tipično orderNumber, RequestId ili Idempotency-Key); provajder po tom ID-ju prepoznaje ponavljanje.
Pitanje za provajdera: ime polja za idempotency key, maksimalna dužina i "životni vek" (koliko dugo se isti ID smatra duplikatom).
6. SLA (Service Level Agreement)
Značenje: ugovorom zagarantovana dostupnost usluge, npr. "99,9% tokom godine".
Referentna tabela:
| SLA | Godišnji neradni maksimum | Mesečni neradni maksimum |
|---|---|---|
| 99,0% | oko 3 dana 16 sati | oko 7 sati 12 minuta |
| 99,9% | 8 sati 45 minuta | 43 minuta |
| 99,95% | 4 sata 22 minuta | 21 minut |
| 99,99% | 52 minuta | 4 minuta |
Zašto je bitno: fiskalizacija je blokirajuća operacija u realnom vremenu — dok je provajder nedostupan, svi checkout-ovi stoje. 99,0% je nedovoljno za e-commerce; minimum preporuka je 99,9%.
Detalj na koji treba obratiti pažnju: da li se SLA odnosi samo na API provajdera ili na end-to-end putanju do PU. Drugo je smislenije, ali većina provajdera garantuje samo svoj API.
Kratka kontrolna lista za upit ka provajderu
Tehnička strana: - Da li je rešenje headless? - Da li je sandbox dostupan kroz self-service registraciju? - Kako je realizovana idempotencija (polje i pravila)? - Podrška za sve tipove računa (Promet / Avans / Refundacija / Poništavanje)? - Obim SLA (samo API ili end-to-end do PU)? - Da li je API dokumentacija javno dostupna?
Komercijalna strana: - Mesečna pretplata + pravila per-račun naplate? - Dužina probnog perioda i da li se odnosi i na produkciju? - Cena po dodatnom prodajnom mestu? - Mogućnost mesečnog plaćanja? - Ko je vlasnik podataka pri prelasku na drugog provajdera?
O AdriaMart-u
Ovaj članak je deo tehničkih priprema tima AdriaMart pred planirani izlazak na srpsko e-commerce tržište. Trenutno smo u pripremnoj fazi pre početka rada i sabiramo naučeno u javne beleške. Predlozi i ispravke: [email protected].