Nordlet

← Blog

API-ji knjigovodstva s dvojnim knjigovodstvom za računovodstvo na tržištima

Tehnički vodič o tome kako funkcioniraju API-ji nepromjenjivih knjiga s dvojnim knjigovodstvom, zašto su potrebni tržištima i na što treba obratiti pozornost prilikom ugrađivanja računovodstva u svoju platformu.

Nordlet Team · · 11 min čitanja

Većina tržišta otkriva da ima računovodstveni problem na isti način: zaposli se financijski stručnjak, otvori proračunsku tablicu s isplatama i upita tko zapravo bilježi obvezu prema prodavateljima u razdoblju između trenutka kada kupac plati i trenutka kada sredstva napuste račun platforme. Inženjerski tim upućuje na tablicu transactions. Financijski stručnjak ističe da tablica događaja nije set poslovnih knjiga. Taj jaz između podataka o događajima i stvarnog računovodstva jest ono što API knjigovodstva s dvojnim knjigovodstvom rješava.

Ovo je tehničko pitanje koje ima i regulatornu težinu. Tržišta drže tuđi novac, obračunavaju PDV u različitim jurisdikcijama i izdaju račune u ime prodavatelja. Raditi to s vlastitom tablicom transakcija funkcionira sve dok revizor, porezna uprava ili ozbiljan kupac ne zatraže dokaz.

Što zapravo jest API knjigovodstva s dvojnim knjigovodstvom

API knjigovodstva s dvojnim knjigovodstvom programabilni je računovodstveni sustav izložen putem HTTP-a. Svaki financijski događaj koji vaša platforma zabilježi zapisuje se kao uravnotežena temeljnica: najmanje jedno duguje i jedno potražuje, jednaka po ukupnom iznosu, proknjižena na imenovane račune u kontnom planu. API provjerava tu ravnotežu u trenutku upisa i pohranjuje zapise tako da se kasnije ne mogu neprimjetno mijenjati.

Dio „dvojnog knjigovodstva“ četiristo je godina staro računovodstveno pravilo prema kojem svaka transakcija utječe na najmanje dva računa. Dio „API“ znači da je vaš proizvod pozivatelj, a ne ljudski knjigovođa. Dio „nepromjenjiv“ (immutable) znači da se ispravci provode stornirajućim knjiženjima, a ne uređivanjem povijesti. Zajedno, ova tri svojstva čine nastale knjige spremnima za reviziju umjesto da budu samo uredne.

Korisna radna definicija:

API knjigovodstva s dvojnim knjigovodstvom prihvaća financijske događaje iz vaše aplikacije, pretvara svaki od njih u uravnoteženu temeljnicu na definirani kontni plan, nepromjenjivo pohranjuje te zapise i izlaže rezultirajuću glavnu knjigu, zaključnu listu (trial balance) i financijska izvješća kroz predvidljive krajnje točke (endpoints).

Nordlet je izgrađen upravo oko ove ideje: stvarne knjige kao API, pri čemu su glavna knjiga, logika PDV-a, fakturiranje i usklađivanje dostupni s istog skupa krajnjih točaka s kojima vaš proizvod već komunicira.

Zašto točno tržištima ovo treba

SaaS s jednim trgovcem često se može izvući sinkronizacijom s općim računovodstvenim alatom jednom dnevno. Tržišta to ne mogu iz tri razloga.

Kao prvo, ona se nalaze u središtu novčanog tijeka. Kupac plaća platformi, platforma drži sredstva, a zatim plaća prodavateljima umanjeno za naknade. Svako od tih kretanja poseban je računovodstveni događaj koji utječe na različite račune: novac, obveze prema prodavateljima, prihode platforme, obveze za PDV, rezerve za povrate. Tablica payments sa stupcem status to ne hvata.

Kao drugo, ona djeluju u različitim poreznim jurisdikcijama. Tržište unutar EU-a s prodavateljima u Litvi, Njemačkoj i Poljskoj te kupcima diljem bloka mora primijeniti ispravan tretman PDV-a po transakciji, provjeriti PDV brojeve prodavatelja putem VIES-a i izraditi obrasce koji zadovoljavaju svaku lokalnu upravu. Ispravno postavljanje ovoga u aplikativnom kodu, a zatim usklađivanje s odvojenim računovodstvenim sustavom, točka je na kojoj se većina tržišta tiho slomi.

Kao treće, opseg transakcija nije prikladan za ručno knjigovodstvo. Platforma koja obavlja deset tisuća narudžbi mjesečno stvara desetke tisuća temeljnica. To mora biti automatizirano od kraja do kraja, inače financijski tim postaje usko grlo rasta.

Kako API funkcionira, korak po korak

Mehanika je manje egzotična nego što zvuči. Tipičan tijek za narudžbu na tržištu izgleda ovako.

1. Vaša platforma emitira financijski događaj. Kupac dovršava kupnju. Vaša pozadinska aplikacija (backend) poziva API knjigovodstva s podacima kao što su: ID narudžbe, kupac, prodavatelj, bruto iznos, stopa PDV-a, provizija platforme, valuta i ključ za idempotentnost (idempotency key).

2. Glavna knjiga sastavlja temeljnicu. API prevodi taj događaj u dugovanja i potraživanja. Za jednostavnu prodaju na tržištu to može značiti terećenje računa novca u tranzitu, odobravanje računa obveza prema prodavatelju za neto iznos, odobravanje računa prihoda platforme za proviziju i odobravanje računa obveza za PDV za porezni dio. Sve uravnoteženo. Sve proknjiženo atomski.

3. Zapisi se upisuju nepromjenjivo. Jednom proknjižen, zapis ima identifikator i vremensku oznaku te se ne može uređivati. Ako nešto nije u redu, knjiži se stornirajući zapis i ispravljeni zapis. Revizijski trag je ovdje poanta.

4. Izvješća se ažuriraju u stvarnom vremenu. Zaključna lista, stanja obveza prema prodavateljima, sažeci PDV-a i račun dobiti i gubitka odmah odražavaju novi unos. Nema noćnog zadatka, nema izvoza, nema prozora za usklađivanje u kojem se brojevi „slažu“.

5. Webhookovi obavještavaju vaš sustav. Događaji poput sale_invoice.paid ili bank_transaction.matched šalju se na vaše krajnje točke, tako da vaš proizvod može reagirati bez anketiranja (polling). U kombinaciji s ključevima idempotentnosti, to znači da su ponovljeni pokušaji sigurni i da se dvostruki unosi ne mogu pojaviti kada mreža zakaže.

Važna točka dizajna: glavna knjiga je izvor istine za ono što se financijski dogodilo. Baza podataka vaše aplikacije je izvor istine za stanje proizvoda. Ta se dva sustava usklađuju jer se glavna knjiga piše na temelju aplikativnih događaja, a ne obrnuto.

Kontni plan je mjesto gdje se odvija dizajnerski rad

Većina intelektualnog napora pri postavljanju glavne knjige za tržište leži u kontnom planu. To je popisa imenovanih spremnika u koje dospijevaju dugovanja i potraživanja: računi novca po bankama, računi obveza prema prodavateljima (često jedan po prodavatelju ili jedan zbirni s pomoćnim knjigama), prihodi platforme po kategorijama, obveze za PDV po zemljama, rezerve za povrate, rezerve za povrate sredstava (chargeback) i tako dalje.

Neki se obrasci ponavljaju na svim tržištima:

  • Sredstva prodavatelja su obveza, a ne prihod. Novac koji držite u ime prodavatelja jest obveza. Tretiranje tog novca kao prihoda i kasnije knjiženje isplate kao troška klasična je pogreška koja se pojavljuje tijekom dubinske analize (due diligence).
  • PDV je zasebna obveza po državama. Ako djelujete u više jurisdikcija unutar EU-a, želite zasebne račune obveza za PDV po državama kako bi se obrasci uredno mapirali.
  • Naknade se moraju modelirati u trenutku kada su zarađene, a ne kada su isplaćene. Obračunsko računovodstvo (accrual accounting) ovdje nije opcija.
  • Povrati, povrati sredstava i sporovi trebaju vlastite račune kako bi račun dobiti i gubitka odražavao stvarnost, umjesto fluktuacije pozitivne i negativne prodaje.

Dobar API glavne knjige omogućuje vam da jednom definirate ovu strukturu i zatim s povjerenjem knjižite na nju, umjesto da izmišljate računovodstvenu logiku unutar koda za naplatu.

Nepromjenjivost, zaključavanje razdoblja i zašto je revizorima stalo do toga

Nepromjenjivost zvuči kao detalj baze podataka. Zapravo je riječ o razlici između knjiga koje će revizor potpisati i onih koje neće.

Ako tržište može tiho uređivati unose iz prethodnog kvartala, onda su brojevi iz prethodnog kvartala, u računovodstvenom smislu, nepoznati. Nepromjenjiva glavna knjiga provodi pravilo da je povijest povijest. Ispravci su vidljivi kao ispravci. Zaključavanje razdoblja proširuje ovo: jednom kada je mjesec zatvoren, u to se razdoblje ne mogu unijeti novi zapisi ili izmjene bez izričite radnje ponovnog otvaranja, koja se također bilježi.

Za platforme koje će s vremenom prikupljati sredstva, prodavati se ili prolaziti kroz poreznu reviziju, ovo nije „zgodno imati“. To je stvar koja knjige čini obranjivima. Nordletova glavna knjiga prema zadanim je postavkama dizajnirana upravo oko toga, s ugrađenom nepromjenjivom strukturom dvojnog knjigovodstva i zaključavanjem razdoblja umjesto da su naknadno dodani.

EU PDV: dio koji troši inženjersko vrijeme

PDV je područje na kojem većina računovodstvenih projekata na tržištima probija rokove. Pravila nisu jednostavno „primjeni postotak“. Ona ovise o tome gdje je kupac, gdje je prodavatelj, što se prodaje, je li prodavatelj registriran za PDV, djeluje li tržište kao isporučitelj (deemed supplier) prema pravilima e-trgovine iz 2021. godine i koji se izvještajni režim primjenjuje lokalno.

Ozbiljan API glavne knjige za EU rješava barem sljedeće:

  • VIES provjeru PDV brojeva prodavatelja i kupaca, idealno s rezultatima koji su predmemorirani (cached) i označeni na transakciji
  • Logiku stope PDV-a po državama, uključujući snižene stope i izuzeća
  • Generiranje i.SAF datoteka za litavska izvješća i ekvivalentne strukturirane izlaze kada ih druge države članice zahtijevaju
  • Peppol BIS 3.0 e-fakturiranje za jurisdikcije koje prelaze na obavezno elektroničko fakturiranje
  • OSS/IOSS obradu za prekograničnu B2C prodaju

Raditi to u aplikativnom kodu, po državama, posao je cjelokupnog inženjerskog tima koji zapravo nikada ne završava jer se pravila stalno mijenjaju. Prebacivanje toga u sloj glavne knjige pragmatična je odluka.

Usklađivanje je mjesto gdje se ušteda vremena jasno vidi

Jednom kada glavna knjiga postane izvor istine, usklađivanje bankovnih izvoda prestaje biti mjesečna muka. Bankovni izvodi stižu, glavna knjiga već zna što bi ondje trebalo biti, a uparivanje je u velikoj mjeri automatsko.

Realna verzija ovoga nije „nula ručnog rada“. To je „iznimke izlaze na površinu“. Tijek usklađivanja jednim klikom za devedeset posto transakcija koje se čisto podudaraju, plus red čekanja za onih deset posto koje zahtijevaju ljudsku odluku, otprilike je ono što dobro dizajnirani API za usklađivanje pruža. Pametno uparivanje plaćanja upravlja djelomičnim plaćanjima, preplatama i uplatama koje pokrivaju više faktura bez da čovjek piše pravila za svaki slučaj.

SEPA izvoz (format pain.001) za isplate dobavljačima i prodavateljima zatvara krug na odlaznoj strani. Odobravate isplate u svom proizvodu, glavna knjiga generira SEPA datoteku, vaša je banka obrađuje, a nastalo kretanje automatski se usklađuje natrag.

Izgraditi vs. kupiti vs. ugraditi

Timovi na tržištima obično razmatraju tri puta. Evo kako se oni uspoređuju po važnim osima.

Pristup Vrijeme do proizvodnje Spremnost za reviziju Rukovanje EU PDV-om Uklapa se u vaš proizvod
Izrada vlastite glavne knjige 12 do 24+ mjeseci Ovisi u potpunosti o vašem timu Sami to gradite, po državama Da
Sinkronizacija s Xero/QuickBooks Tjedni Dobro za računovodstvenu stranu, slabo za specifične tijekove tržišta Djelomično, potrebni su dodaci Ne, nalazi se u zasebnom alatu
Ugradnja API-ja glavne knjige (npr. Nordlet) Tjedni Ugrađeno putem nepromjenjive glavne knjige i zaključavanja razdoblja Ugrađeno za EU, uključujući VIES i i.SAF Da, putem API-ja i SDK-jeva

Izgradnja vlastitog rješenja ima smisla ako je računovodstvo vaš proizvod. Za sve ostale, matematika rijetko funkcionira. Sinkronizacija s tradicionalnim računovodstvenim alatom funkcionira za poslovanja s jednim entitetom, ali posrće pod tijekovima tržišta: podijeljena plaćanja, pomoćne knjige prodavatelja, PDV po državama i scenariji u kojima je platforma smatrana isporučiteljem ne mapiraju se uredno na alate dizajnirane za knjige jedne tvrtke.

Ugradnja glavne knjige usmjerene na API jest ono čemu većina suvremenih platformi teži. Knjige žive unutar iskustva vašeg proizvoda, prodavatelji vide svoje financije u vašem sučelju, a složeni poslovi usklađenosti rješavaju se na sloju infrastrukture.

Na što obratiti pozornost pri odabiru API-ja glavne knjige

Kratak kontrolni popis koji vrijedi imati pri ruci tijekom poziva s dobavljačima:

  • Nepromjenjiva pohrana s dvojnim knjigovodstvom s ispravcima putem stornirajućih knjiženja, a ne s redovima koji se mogu uređivati
  • Zaključavanje razdoblja sa zabilježenim radnjama ponovnog otvaranja
  • Ključevi idempotentnosti na svakoj krajnjoj točki za pisanje
  • Webhookovi za događaje na koje vaš proizvod treba reagirati, a ne samo API za anketiranje
  • Tipizirani SDK-jevi u jezicima koje vaš tim stvarno koristi
  • Logika PDV-a po državama uključujući VIES, i.SAF ili ekvivalente te OSS/IOSS
  • Podrška za više tvrtki ako upravljate s više entiteta ili to planirate
  • Granularna kontrola pristupa temeljena na ulogama, dovoljno precizna za odvajanje programera, računovođa i promatrača
  • Izvoz izvješća u XLSX, PDF i JSON formatima, uz obavijesti putem webhooka kada su velika izvješća spremna
  • Sandbox okruženje koje zrcali ponašanje u produkciji, a ne pojednostavljenu demo verziju

Ako dobavljač ne može prikazati prva tri stavka na tehničkom pozivu, ostalo nije važno.

Što bih učinio najprije

Ako tržište započinje ovaj posao od nule, slijed koji štedi najviše muke:

  1. Mapirajte stvarni tijek novca na ploči prije pisanja bilo kakvog koda. Tko kome duguje, u kojem trenutku, u kojoj valuti, s kojim poreznim tretmanom.
  2. Nacrtajte kontni plan na temelju te mape. Obveze prema prodavateljima, prihodi platforme, obveze za PDV po državama, rezerve. Zatražite od računovođe da ga pregleda prije nego što krene u produkciju.
  3. Odaberite sloj glavne knjige. Izgradite, sinkronizirajte ili ugradite. Budite iskreni u pogledu toga što vaš tim zapravo može isporučiti i održavati.
  4. Implementirajte jedan tijek od kraja do kraja: narudžba do fakture, isplate do usklađivanja. Dokažite da je uravnoteženo. Zatim skalirajte.
  5. Uključite zaključavanje razdoblja čim se prvi mjesec čisto zatvori. Ta disciplina s vremenom donosi sve veće koristi.

Timovi koji ovo naprave ispravno tretiraju glavnu knjigu kao temeljnu infrastrukturu, a ne kao sporednu misao za izvještavanje. To je promjena koja razgovor o financijama s revizorom, investitorom ili poreznom upravom čini kratkim umjesto dugim.

FAQ

Je li API knjigovodstva s dvojnim knjigovodstvom isto što i računovodstvena integracija?

Ne. Integracija sinkronizira podatke iz vašeg proizvoda u vanjski računovodstveni alat, obično s odgodom. API glavne knjige jest računovodstveni sustav u koji se upisuje izravno, u stvarnom vremenu. Ta je razlika važna jer integracije gube vjernost na rubovima: djelomična plaćanja, više valuta, podjele na tržištu. API glavne knjige bilježi ih izvorno.

Ne možemo li jednostavno koristiti izvješća Stripe-a ili Adyen-a?

Izvješća pružatelja usluga naplate govore vam što je prošlo kroz sustav. Ona nisu knjige dvojnog knjigovodstva. Ona ne znaju za vaše obveze prema prodavateljima koje još nisu isplaćene, vaše obveze za PDV u različitim državama ili vaše troškove koji ne idu preko pružatelja naplate. Ona su samo jedan ulazni podatak u glavnu knjigu, a ne njezina zamjena.

Koliko je nepromjenjivo zapravo nepromjenjivo u praksi?

Zapisi se ne mogu uređivati. Ispravci su novi zapisi koji upućuju na izvorni. To je odluka o dizajnu, a ne tehnološka odluka. Svaka kompetentna glavna knjiga to će provoditi. Razlog zašto je to važno jest taj što je izjava „uredili smo to da se slaže s bankom“ upravo onaj obrazac zbog kojeg knjige postaju nepovjerljive.

Što je s tržištima izvan EU-a?

Mehanika dvojnog knjigovodstva je univerzalna. Porezna logika nije. API glavne knjige prilagođen EU PDV-u dobro će upravljati operacijama s naglaskom na EU i može podržati transakcije izvan EU-a, ali ako vam je primarno tržište američki porez na promet ili latinoamerički režimi e-fakturiranja, provjerite specifičnu pokrivenost usklađenosti prije donošenja odluke.

Koliko zapravo traje implementacija?

Za tržište s čistim modelom događaja, ugradnja API-ja glavne knjige do točke izvođenja jednog tijeka od kraja do kraja obično traje nekoliko tjedana inženjerskog rada. Potpuna migracija sa zastarjelog postava, uključujući povijesne podatke, traje dulje. Varijabla je gotovo uvijek stanje postojećih podataka, a ne sam API.