Integracija preko API-ja · 14 min čitanja

Tezga i n8n: 7 gotovih tokova za fiskalizaciju bez programera

Tezga eKasa i n8n se spajaju preko REST API-ja i odlaznih webhookova, pa fiskalni račun nastaje sam kad uplata legne, kad stigne porudžbina iz forme ili kad shop vrati robu. U tekstu je sedam gotovih tokova sa okidačem, čvorovima, JSON telom i spiskom onoga što najčešće pukne.

Tezga eKasa i n8n se povezuju preko REST API-ja i odlaznih webhookova, pa se fiskalizacija uklapa u tok koji već imaš: bankovni izvod, forma na sajtu, Google Sheets, SEF ili CRM. Za svaki tok ti trebaju API ključ, jedan čvor HTTP Request i pravilno popunjen JSON. Ispod je sedam tokova koje možeš da preslikaš bez programera.

Ukratko
  • n8n zove Tezga API čvorom HTTP Request, a ključ ide u zaglavlje X-Tezga-Api-Key.
  • Polje externalId je ključ idempotentnosti: ista porudžbina se fiskalizuje tačno jednom, koliko god puta tok ponovio zahtev.
  • Odgovor 202 znači da je Tezga primila zahtev, a V-PFR je trenutno nedostupan; Tezga sama ponavlja, ti ne šalješ novi zahtev.
  • Odlazni webhook racun.fiskalizovan vraća podatke u n8n, pa se CRM, tabela ili poruka pune bez ručnog rada.
  • Tokovi rade i za paušalce i za DOO; jedino SEF tok traži da je tvoja firma u sistemu e-faktura.

Šta ti treba pre prvog toka?

Tri stvari: nalog na Tezga eKasi, API ključ i n8n koji radi (cloud ili tvoja instanca, svejedno). Ključ praviš u kasi, u podešavanjima integracija. Počinje sa tzg_, ima 48 heksadecimalnih znakova posle toga i vidi se samo jednom pri pravljenju. Zato ga odmah upiši u n8n kao credential tipa „Header Auth” sa imenom zaglavlja X-Tezga-Api-Key. Po firmi možeš da imaš do 20 ključeva, pa napravi zaseban ključ za n8n i nazovi ga tako, da bi ga kasnije rotirao (rotacija je na 90 dana) bez gašenja drugih integracija.

Ako želiš da vežbaš bez posledica, uradi to na testnom nalogu. Okruženje je osobina naloga, ne ključa: testni nalog šalje račune u sandbox Poreske uprave (tamo nisu fiskalni), ili koristi tip računa „Обука” na produkciji, koji nosi napomenu „ОВО НИЈЕ ФИСКАЛНИ РАЧУН”. Kad tok proradi, samo zameniš credential ključem sa pravog naloga. Detaljan opis svih polja je na strani API za fiskalizaciju, a mašinski opis u OpenAPI dokumentu.

U svakom HTTP Request čvoru podesi: metod POST, URL https://pos.narbiz.com/api/integrations/order?provider=custom, telo kao JSON, i uključi opciju da čvor ne prekida tok na kodovima 4xx i 5xx (u n8n: „Continue on Fail” ili opcija „Never Error”), da bi sledeći IF čvor sam odlučio šta radi sa 202, 400 ili 429.

Tok 1: Uplata na izvodu pa fiskalni račun pa mejl kupcu

Ovo je tok za prodavca koji porudžbine drži u tabeli ili CRM-u, a kupci plaćaju na tekući račun po pozivu na broj. Ako predračun sa NBS IPS QR kodom izdaješ kroz Tezgu, ovo uparivanje kasa radi sama iz izvoda (opisano na strani novac, banka i naplata). n8n verzija ti treba kad porudžbine žive negde drugde.

n8n platno za tok 1: transakcije, uparivanje, račun, mejl n8n: Tok 1, uplata na izvodu pa račun pa mejl kupcu Schedule svakih 30 min HTTP GET transactions Merge poziv na broj Google Sheets otvorene porudžbine HTTP POST order (racun) Mejl kupcu šalje Tezga Okidač: raspored. Uparivanje: poziv na broj ili jedinstven iznos. Ključ idempotentnosti: broj transakcije. Izlaz: fiskalni račun sa načinom plaćanja „Prenos na račun”, PDF stiže kupcu mejlom.

Mokap n8n platna za tok 1: raspored pokreće čitanje transakcija, uparuje ih sa otvorenim porudžbinama i za svaku uparenu uplatu izdaje fiskalni račun.

Okidač i čvorovi

Okidač je Schedule Trigger na 30 minuta. Prvi HTTP Request čvor poziva GET /api/integrations/transactions i vraća bankovne transakcije koje je kasa učitala iz izvoda. Google Sheets čvor čita list sa otvorenim porudžbinama (kolone: poziv na broj, iznos, mejl kupca, stavke). Merge čvor u režimu spajanja po polju upari transakciju sa porudžbinom preko poziva na broj. Za svaku uparenu stavku HTTP Request čvor šalje POST na /api/integrations/order?provider=custom. Na kraju Google Sheets čvor upiše status „fiskalizovano” i broj računa iz odgovora.

JSON telo

{
  "externalId": "izvod-2026-09-14-97-4410231",
  "tipDokumenta": "racun",
  "tok": "fiskalni",
  "nacinPlacanja": "Prenos na račun",
  "posaljiMejl": true,
  "kupac": { "naziv": "Petar Petrović", "email": "petar@primer.rs" },
  "stavke": [
    { "naziv": "Ručno rađena kožna torba", "sifra": "TB-01",
      "kolicina": 1, "cenaSaPdv": 5900, "poreskaStopa": "Ђ" }
  ]
}

Za externalId uzmi nešto što se ne ponavlja i što potiče iz banke, na primer datum i broj transakcije. Tako je nemoguće da ista uplata dva puta proizvede račun, čak i ako tok krene dvaput u istom minutu. Poresku oznaku uzmi iz GET /api/integrations/tax-labels; firma koja nije u PDV-u koristi oznaku bez PDV-a, a ne „Ђ” iz primera.

Šta može da pukne

  • Dva kupca uplate isti iznos bez poziva na broj. Merge ih ne razlikuje. Rešenje: poziv na broj obavezan na predračunu, a bez njega tok ne izdaje račun nego šalje tebi poruku za ručnu proveru.
  • Kupac uplati manje od iznosa. Ne izdaje se račun na pun iznos; IF čvor poredi iznose i za razliku otvara zadatak.
  • Izvod stigne sa zakašnjenjem, pa se tok „uhvati” tek sutradan. Račun se i dalje izdaje na dan kad je uplata viđena, što je tačno po Zakonu o fiskalizaciji: račun ide u trenutku prometa, a promet je isporuka ili naplata, šta pre nastupi.

Tok 2: Porudžbina iz forme pa račun pa Telegram poruka vlasniku

Za prodavca koji nema web shop, već formu na sajtu, u n8n-u (Form Trigger) ili u nekom alatu za forme koji zna da pošalje webhook. Ovaj tok prima porudžbinu, izdaje dokument i tebi šalje poruku da spakuješ paket.

Okidač i čvorovi

Okidač je Webhook čvor (ili n8n Form Trigger). Set čvor pretvara polja forme u oblik koji Tezga očekuje: ime, mejl, izabrani proizvod, količina, način plaćanja. IF čvor grana po načinu plaćanja: ako je pouzeće, izdaje se fiskalni račun sa načinom plaćanja „Prenos na račun” (novac stiže preko kurira na tvoj račun, nije gotovina); ako je uplata na račun, izdaje se predračun sa IPS QR kodom, a fiskalni račun nastaje kad uplata legne. HTTP Request čvor šalje zahtev, a Telegram čvor šalje tebi poruku sa imenom kupca, iznosom i brojem dokumenta.

JSON telo za pouzeće

{
  "externalId": "forma-2026-09-15-000318",
  "tipDokumenta": "racun",
  "tok": "fiskalni",
  "nacinPlacanja": "Prenos na račun",
  "posaljiMejl": true,
  "kupac": { "naziv": "Milica Jović", "email": "milica@primer.rs" },
  "stavke": [
    { "naziv": "Sapun od kozjeg mleka", "sifra": "SAP-02",
      "kolicina": 3, "cenaSaPdv": 650, "poreskaStopa": "Ђ" },
    { "naziv": "Dostava", "sifra": "DOST", "kolicina": 1,
      "cenaSaPdv": 390, "poreskaStopa": "Ђ" }
  ]
}

Za predračun promeni tipDokumenta u predracun i dodaj pozivNaBroj. Bez poziva na broj API odbija predračun, i to je namerno: bez njega kasa kasnije ne bi mogla da upari uplatu sa izvoda. Kad koristiš pouzeće, razmisli da li račun izdaješ odmah ili tek kad kurir preda paket; o tome detaljno piše Trek u tekstu fiskalna kasa i pouzeće.

Šta može da pukne

  • Forma dozvoli prazan mejl. Tezga račun izda, ali nema kome da ga pošalje. Rešenje: mejl obavezan na formi, a u Set čvoru validacija formata.
  • Bot popuni formu 200 puta. Dobio bi 200 računa. Rešenje: zaštita forme (captcha ili honeypot polje) pre n8n-a, plus IF čvor koji odbacuje porudžbine bez validne stavke.
  • Telegram čvor padne posle uspešnog računa. Račun postoji, poruka nije stigla. Zato Telegram stavi iza računa, nikad ispred, i uključi n8n ponavljanje samo za taj čvor.

Tok 3: Dnevni promet u Google Sheets

Ovaj tok ne pravi račune, on ih beleži. Za kraj dana dobijaš red sa brojem računa, iznosom po načinu plaćanja i brojem refundacija. Tezga ti to nudi i u kasi kroz izveštaje za knjigovođu sa CSV izvozom i slanjem na raspored, ali ako već vodiš tabelu za sopstvene potrebe, ovako je puniš bez kucanja.

Okidač i čvorovi

Dva okidača u dva toka. Prvi je Webhook čvor koji prima odlazni webhook racun.fiskalizovan, refundacija.izvrsena i storno.izvrsen iz Tezge, pa Google Sheets čvor za svaki događaj doda red u list „Dokumenti” (datum, tip, broj, iznos, način plaćanja, externalId). Drugi tok ima Schedule Trigger u 23:55, čita list „Dokumenti” za taj dan, Code čvor sabere po tipu i načinu plaćanja, a Google Sheets čvor upiše red u list „Dnevni promet”. Odlazni webhook uključuješ u kasi: Podešavanja, Integracije, Odlazna obaveštenja.

Primer reda koji Code čvor pravi

{
  "datum": "2026-09-15",
  "racuna": 41,
  "refundacija": 2,
  "prenosNaRacun": 118450,
  "platnaKartica": 23900,
  "gotovina": 0,
  "ukupno": 142350
}

Šta može da pukne

  • Webhook stigne dvaput (mreža, ponavljanje). Tabela dobije dupli red, a zbir bude pogrešan. Rešenje: pre dodavanja reda proveri da li već postoji red sa istim X-Tezga-Delivery zaglavljem, to je identifikator isporuke namenjen baš tome.
  • Vremenska zona. n8n instanca na UTC-u će račun izdat u 00:30 po Beogradu upisati u prethodni dan. Podesi n8n na Europe/Belgrade u podešavanjima instance, ne u pojedinačnom toku.
  • Tabela ne sme da bude knjigovodstveni izvor. Zvanični izveštaj i dalje ide iz kase, jer tabela ne zna za dokumente koji su nastali dok je n8n bio ugašen.

Tok 4: Povraćaj u shopu pa refundacija

Kupac vrati robu, shop (WooCommerce, Shopify ili neki treći sa webhookom) označi porudžbinu kao vraćenu, a n8n izda refundaciju u kasi. Za WooCommerce i Shopify Tezga ima dvosmernu vezu bez n8n-a, ali tok ti treba za shopove koji nemaju gotovu vezu ili kad povraćaj odobrava neko u CRM-u, a ne u shopu.

Okidač i čvorovi

Webhook čvor prima događaj povraćaja. Set čvor izvuče externalId originalne porudžbine i stavke koje se vraćaju. HTTP Request čvor zove POST /api/integrations/refund. IF čvor proverava kod: 200 ide u Google Sheets ili mejl kupcu, 202 čeka (Tezga ponavlja), 400 ide tebi na Telegram.

JSON telo za delimičan povraćaj

{
  "vrsta": "refundacija",
  "externalId": "woo-10233",
  "stavke": [
    { "naziv": "Majica pamučna M crna", "sifra": "MAJ-M-CRNA",
      "kolicina": 1, "cenaSaPdv": 2490, "poreskaStopa": "Ђ" }
  ]
}

Original se traži po documentId ili po externalId porudžbine, pa ti ne treba ništa iz kase, dovoljno je ono što shop već zna. Ako je original izdat bez kupca, refundacija traži kupacIdBroj, jer refundacija po propisu nosi identifikaciju kupca kome se novac vraća. Razlika između storna i refundacije je objašnjena na strani storno i refundacija fiskalnog računa.

Šta može da pukne

  • Shop pošalje webhook i za delimičan i za ceo povraćaj iste porudžbine. Tezga će drugi zahtev primeniti na preostale stavke, ali ako je zbir veći od originala, vraća 400. Rešenje: IF čvor koji proverava da li je porudžbina već refundirana u celosti.
  • Kupac vraća robu, ali zadržava pravo na zamenu. Zamena veličine nije refundacija pa račun; to je refundacija stare stavke i novi račun za novu, ili zamena bez novca ako je cena ista, kako te uputi knjigovođa.
  • Rok. Po Zakonu o zaštiti potrošača kupac na daljinu ima pravo na odustanak 14 dana; ako shop dozvoljava duže, kasa to ne ograničava, ali izvod mora da pokaže povraćaj novca.

Tok 5: B2B porudžbina pa e-faktura na SEF

Kupac na sajtu unese PIB. Tezga takav račun vodi kao B2B: ako ide fiskalni račun, nosi Id kupca 10:PIB; ako kupac i ti imate obavezu SEF-a, ide e-faktura u Sistem e-faktura. Tok bira polje tok: sef, fiskalni ili fiskalni_i_sef. Koji je pravi za tvoju firmu, to ti kaže knjigovođa; kasa podržava sva tri. SEF tok je deo paketa Biznis, koji je i opisan na strani fakture, SEF i otpremnice.

Okidač i čvorovi

Isti Webhook čvor kao u toku 2, ali IF čvor grana po tome da li je polje PIB popunjeno. Kad jeste, Set čvor dodaje kupac.pib i menja tok u sef. Opciono, HTTP Request čvor prvo proveri PIB na sajtu APR-a ručno (n8n nema zvanični APR čvor, pa je ovo ručna provera pre prvog računa za novog kupca).

JSON telo

{
  "externalId": "b2b-2026-09-15-0007",
  "tipDokumenta": "racun",
  "tok": "sef",
  "nacinPlacanja": "Prenos na račun",
  "posaljiMejl": true,
  "kupac": { "naziv": "Primer DOO", "pib": "123456789",
             "email": "racuni@primer-doo.rs" },
  "stavke": [
    { "naziv": "Kancelarijski papir A4, kutija", "sifra": "PAP-A4",
      "kolicina": 10, "cenaSaPdv": 3600, "poreskaStopa": "Ђ" }
  ]
}

Šta može da pukne

  • PIB sa slovnom greškom prođe na sajtu, a SEF odbije fakturu. Rešenje: u Set čvoru proveri da PIB ima tačno 9 cifara, a nove kupce prvi put proveri ručno.
  • Kupac unese PIB, ali plaća karticom kao fizičko lice. Onda nije e-faktura nego fiskalni račun sa Id kupca 10:PIB. Ostavi mogućnost da tok pošalje fiskalni kad je plaćanje karticom.
  • Paušalac van PDV-a koji nema obavezu SEF-a. Njemu ovaj tok najčešće ne treba, osim za javni sektor; pročitaj e-fakture za IT paušalce.

Tok 6: Rezervacija sa kaparom pa avansni račun

Salon, apartman, škola jezika ili fotograf: kupac rezerviše termin i plati kaparu unapred. Po Pravilniku o vrstama fiskalnih računa, avansni račun se izdaje kad se novac primi pre prometa, a pri isporuci konačni račun sa pozivom na avansni. Tezga zna oba koraka, a n8n ih pokreće iz sistema za rezervacije.

Okidač i čvorovi

Okidač je webhook iz sistema za rezervacije (većina alata za zakazivanje šalje webhook na novu rezervaciju i na promenu statusa). Set čvor pravi stavku „Kapara za termin” sa iznosom kapare. HTTP Request čvor zove POST /api/integrations/advance. Kad se termin obavi, drugi webhook (status „obavljeno”) pokreće zatvaranje avansa istim endpointom, sa pozivom na avansni dokument; tačan oblik zatvaranja pogledaj u OpenAPI opisu, jer zavisi od toga da li konačan iznos prelazi kaparu.

JSON telo za avans

{
  "externalId": "rez-2026-10-03-1400-ana",
  "nacinPlacanja": "Prenos na račun",
  "posaljiMejl": true,
  "kupac": { "naziv": "Ana Marković", "email": "ana@primer.rs" },
  "stavke": [
    { "naziv": "Kapara za termin 03.10.2026 u 14:00", "sifra": "KAP",
      "kolicina": 1, "cenaSaPdv": 3000, "poreskaStopa": "Ђ" }
  ]
}

Šta može da pukne

  • Kupac otkaže, a kapara se zadržava. Avansni račun ostaje, a šta se izdaje za zadržanu kaparu zavisi od tvog ugovora sa kupcem; proveri sa knjigovođom pre nego što tok automatizuje otkazivanja.
  • Kupac otkaže i kapara se vraća. Onda ide refundacija avansnog računa, tok 4, sa externalId rezervacije.
  • Dve rezervacije istog kupca u istom danu dobiju isti externalId. Ubaci vreme termina u ključ, kao u primeru.

Sve o avansu u kasi, sa primerima za kaparu, ima na strani avansni račun.

Tok 7: Odlazni webhook racun.fiskalizovan pa CRM

Do sada je n8n zvao Tezgu. Ovde Tezga zove n8n. Svaki fiskalizovani račun, greška, refundacija ili storno može da pokrene tok koji upisuje kupca u CRM, otvara zadatak ili šalje poruku.

n8n platno za tok 7: Webhook, HMAC, IF, CRM n8n: Tok 7, odlazni webhook racun.fiskalizovan pa CRM Webhook POST iz Tezge Crypto HMAC sha256 IF potpis tačan? CRM upiši kupca Odbaci vrati 401 Vrati 200 Zaglavlja: X-Tezga-Event, X-Tezga-Delivery (id za idempotentnost), X-Tezga-Signature. Ako CRM čvor padne, n8n vraća 500 i Tezga ponavlja isporuku sa istim X-Tezga-Delivery.

Mokap n8n platna za tok 7: Tezga šalje događaj, n8n proverava HMAC potpis, a tek onda upisuje kupca u CRM i vraća 200.

Okidač i čvorovi

Okidač je Webhook čvor u režimu „Respond when last node finishes”, sa opcijom da prima sirovo telo (Raw Body), jer se potpis računa nad sirovim telom, ne nad parsiranim JSON-om. Crypto čvor računa HMAC sha256 nad telom sa tajnom koju si upisao u kasi pri podešavanju odlaznog obaveštenja. IF čvor poredi rezultat sa zaglavljem X-Tezga-Signature (oblik sha256=...). Ako je potpis tačan, CRM čvor (HubSpot, Pipedrive, ili običan HTTP Request ka tvom CRM-u) upiše kupca, iznos i broj računa. Ako nije, Respond to Webhook čvor vraća 401 i ništa se ne upisuje.

Primer onoga što n8n šalje u CRM

{
  "dogadjaj": "racun.fiskalizovan",
  "isporukaId": "vrednost iz X-Tezga-Delivery",
  "kupacEmail": "petar@primer.rs",
  "iznos": 5900,
  "napomena": "Fiskalni račun izdat, PDF poslat kupcu"
}

Ako u događaju nemaš sve što ti treba, pozovi GET /api/integrations/documents/{id}: vraća stanje dokumenta, PFR broj i javniPdfUrl, adresu javnog PDF-a koju možeš da upišeš u CRM ili da pošalješ kupcu Viberom.

Šta može da pukne

  • Isporuka stigne dvaput. Pre upisa u CRM proveri da li X-Tezga-Delivery već postoji u tvojoj evidenciji (n8n Data Table ili Google Sheets list). Ako postoji, vrati 200 i ne radi ništa.
  • n8n instanca je bila ugašena. Tezga ponavlja isporuku, ali za dugačke prekide pokreni jednokratni tok koji čita dokumente po externalId i dopuni CRM.
  • Potpis „ne štima” jer je n8n parsirao telo pa ga ponovo serijalizovao. Uključi Raw Body i računaj potpis nad njim.

Kako Tezga obrađuje zahtev iz n8n-a?

Bez obzira na to koji tok koristiš, put zahteva je isti. n8n pošalje JSON, Tezga proveri ključ i telo, potraži postojeći dokument sa istim externalId, i ako ga nema, pošalje račun na V-PFR (virtuelni procesor fiskalnih računa Poreske uprave). PFR vrati broj računa, Tezga upiše dokument, pošalje mejl kupcu ako je posaljiMejl uključen, i pokrene odlazni webhook. Sve to je opisano i na strani web shop, sajt i API.

Put zahteva od n8n-a do Poreske uprave i nazad n8n HTTP Request JSON Tezga eKasa ključ, externalId V-PFR Poreska uprava PFR broj Račun upisan Mejl kupcu PDF sa QR Webhook nazad u n8n PFR nedostupan: 202 Tezga sama ponavlja Isti externalId nikad ne pravi drugi dokument, ni kad n8n ponovi zahtev.

Put jednog zahteva: n8n šalje JSON, Tezga proverava ključ i idempotentnost, V-PFR vraća broj računa, kupac dobija mejl, a n8n dobija odlazni webhook.

HTTP kodŠta značiŠta n8n radi
200Dokument izdat, u odgovoru su broj i identifikatorNastavlja tok, upisuje broj računa
202Primljeno, V-PFR trenutno nedostupan, Tezga ponavlja samaNe šalje novi zahtev; čeka webhook racun.fiskalizovan
400Loš zahtev (polje, stopa, poziv na broj, više od 500 stavki)Šalje poruku vlasniku sa tekstom greške
401Ključ neispravan, istekao ili vezan za drugi IPZaustavlja tok, obaveštava vlasnika
402Kredit u paketu „Po računu” potrošenObaveštava vlasnika da dopuni kredit
429Prekoračen broj zahtevaČeka i ponavlja sa istim externalId

Šta najčešće pukne i kako se ispravlja?

GreškaPosledicaRešenje
Nasumičan externalId pri svakom pokušajuPonovljen zahtev pravi drugi računKljuč izvedi iz izvora (broj porudžbine, transakcije, rezervacije)
Ponavljanje zahteva posle 202Nepotreban saobraćaj, isti dokumentNa 202 čekaj webhook, ne šalji novi POST
Poziv API-ja sa sajta iz pregledačaKljuč vidljiv svakom posetiocuKljuč živi samo u n8n-u ili na serveru
Pouzeće kao „Gotovina”Pogrešan način plaćanja na računuPouzeće je „Prenos na račun”, novac stiže preko kurira na račun
Dostava bez stavkeIznos računa manji od naplaćenogDostava kao zasebna stavka sa svojom stopom
UTC na n8n instanciNoćni računi u pogrešnom danu u tabeliVremenska zona instance Europe/Belgrade
Jedan ključ za sveRotacija gasi sve integracije odjednomPo jedan ključ za n8n, shop i ostalo, do 20 po firmi

Ako ti je jasnije kad tokove vidiš iz ugla firme koja ih koristi, autor kase je opisao svoj sopstveni tok banka, kasa, mejl u tekstu kako sam sa n8n spojio banku, kasu i mejl, a agencija Go Simple ima pregled 12 n8n automatizacija za male firme od kojih tri koriste Tezgu. Širi pregled API-ja, sa primerima za aplikacije koje nisu n8n, ima u vodiču Tezga eKasa API, integracije i automatizacije na Treku i na strani fiskalni API.

Izvori: Zakon o fiskalizaciji (Sl. glasnik RS 153/2020, 96/2021, 138/2022); Pravilnik o vrstama fiskalnih računa, tipovima transakcija, načinima plaćanja; Tehničko uputstvo za ESIR Poreske uprave (purs.gov.rs); Zakon o zaštiti potrošača (Sl. glasnik RS 35/2026); dokumentacija SEF-a (efaktura.mfin.gov.rs); NBS IPS QR (ips.nbs.rs); uputstvo za integratore i OpenAPI opis Tezga eKase. Tekst nije pravni savet; za svoju situaciju proveri sa knjigovođom.

Česta pitanja

Da li mi treba plaćeni n8n cloud ili može sopstvena instanca?

Može oboje. Tezga API ne pravi razliku: bitno je da n8n može da pošalje HTTPS zahtev ka pos.narbiz.com i, za tok 7, da ima javnu adresu na koju Tezga šalje webhook. Ako n8n držiš u lokalnoj mreži bez javne adrese, tokovi 1 do 6 rade, a za tok 7 ti treba tunel ili javna instanca.

Koliko košta fiskalizacija kroz n8n tokove?

Isto koliko i bez n8n-a, jer se plaća kasa, ne integracija. Mesečni paketi Start, Posao i Biznis uključuju API, a za integratore postoji paket „Po računu” sa 4 RSD po fiskalnom računu i refundaciji, uz dopunu unapred od 2.000 do 20.000 RSD koja važi 12 meseci. Cene su neto pretplata, jer Go Simple nije u sistemu PDV-a.

Šta se dešava ako n8n pošalje isti zahtev tri puta?

Nastaje jedan dokument. Polje externalId (do 200 znakova) je ključ idempotentnosti, pa Tezga za drugi i treći zahtev vraća isti dokument koji je nastao iz prvog. To važi i kad webhook iz shopa i n8n zahtev stignu istovremeno. Uslov je da ključ bude isti, zato ga ne generiši nasumično.

Mogu li tokove da testiram bez pravih računa?

Da. Zatraži testni nalog od Go Simple: njegovi računi idu u sandbox Poreske uprave i nisu fiskalni. Druga opcija je tip računa „Обука” na produkciji, koji nosi napomenu „ОВО НИЈЕ ФИСКАЛНИ РАЧУН”. Okruženje je vezano za nalog, pa u n8n-u samo menjaš credential kad prelaziš na pravu firmu.

Kako n8n zna da je kupac dobio račun mejlom?

Mejl kupcu šalje Tezga kad je posaljiMejl uključen, pa n8n ne mora da zna za slanje. Ako želiš potvrdu u svojoj evidenciji, uključi odlazni webhook racun.fiskalizovan i upiši javniPdfUrl iz GET /api/integrations/documents/{id} u tabelu ili CRM.

Šta ako kupac plati mobilnim bankarstvom bez poziva na broj?

Kasa pokušava da upari uplatu i po jedinstvenom iznosu, ali to je pouzdano samo kad iznosi nisu isti. Zato predračun uvek nosi poziv na broj; API bez njega odbija predračun. U n8n toku uplate koje ne mogu da se upare šalji sebi na Telegram i reši ručno, ne izdavaj račun nasumice.

Da li n8n tok može da izda račun za prodaju u radnji?

Za prodaju na licu mesta u fizičkom objektu Zakon o fiskalizaciji traži L-PFR, dok je V-PFR dozvoljen za online prodaju i prodaju na daljinu. Tokovi iz ovog teksta su namenjeni online prodaji, uplatama na račun, rezervacijama i B2B prometu. Sopstveni L-PFR Tezge je u pripremi, bez obećanog datuma.

Ako želiš da probaš tokove na svojoj firmi, otvori nalog na strani probaj fiskalnu kasu, napravi ključ i preslikaj prvi tok. Za pitanja oko JSON polja piši na podrska@gosimple.space.

Poveži svoj sistem sa kasom

Otvori nalog, napravi API ključ i pošalji prvi test račun. Ako zapneš, piši nam sa opisom sistema koji povezuješ.