Nordlet

← Blog

API účtovnej knihy podvojného účtovníctva pre marketplace platformy

Technický sprievodca tým, ako fungujú API nemenných účtovných kníh podvojného účtovníctva, prečo ich marketplace platformy potrebujú a čo si všímať pri integrovaní účtovníctva do vašej platformy.

Nordlet Team · · 11 min. čítania

Väčšina marketplace platforiem zistí, že má problém s účtovníctvom, rovnakým spôsobom: do firmy nastúpi nový človek do financií, otvorí tabuľku s výplatami a spýta sa, kto vlastne eviduje záväzok voči predajcom v období medzi platbou kupujúceho a odchodom finančných prostriedkov z účtu platformy. Vývojový tím ukáže na tabuľku transactions. Finančný špecialista upozorní, že tabuľka udalostí nie je účtovná kniha. Práve túto medzeru medzi údajmi o udalostiach a skutočným účtovníctvom pomáha vyplniť API podvojného účtovníctva.

Ide o technickú otázku s regulačným dopadom. Marketplace platformy držia cudzie peniaze, počítajú DPH naprieč jurisdikciami a vystavujú faktúry v mene predajcov. Robiť to pomocou vlastnej tabuľky transakcií funguje dovtedy, kým audítor, daňový úrad alebo vážny kupujúci nepožiadajú o dôkaz.

Čo vlastne je API podvojného účtovníctva

API podvojného účtovníctva je programovateľný účtovný engine sprístupnený cez HTTP. Každá finančná udalosť, ktorú vaša platforma zaznamená, sa zapíše ako vyrovnaný účtovný zápis: minimálne jeden ťarcha (debet) a jeden prospech (kredit), ktoré sa celkovo rovnajú a sú zaúčtované na konkrétne účty v účtovom rozvrhu. API vynucuje túto rovnováhu v čase zápisu a ukladá záznamy tak, aby sa nedali neskôr potichu upravovať.

Časť „podvojné účtovníctvo“ odkazuje na štyristo rokov staré účtovné pravidlo, že každá transakcia ovplyvňuje aspoň dva účty. Časť „API“ znamená, že volajúcim je váš produkt, nie ľudský účtovník. Časť „nemenné“ (immutable) znamená, že opravy prebiehajú prostredníctvom stornujúcich zápisov, nie úpravou histórie. Tieto tri vlastnosti spoločne zabezpečujú, že výsledné účtovné knihy sú pripravené na audit, a nie sú len upratané.

Užitočná pracovná definícia:

API podvojného účtovníctva prijíma finančné udalosti z vašej aplikácie, každú z nich konvertuje na vyrovnaný účtovný zápis oproti definovanému účtovnému rozvrhu, tieto záznamy ukladá nemenným spôsobom a prostredníctvom predvídateľných koncových bodov (endpoints) sprístupňuje výslednú účtovnú knihu, predvahu a finančné výkazy.

Produkt Nordlet je postavený presne na tejto myšlienke: skutočné účtovné knihy vo forme API, pričom hlavná kniha (ledger), logika DPH, fakturácia and odsúhlasovanie sú dostupné z rovnakej sady koncových bodov, s ktorými už váš produkt komunikuje.

Prečo to marketplace platformy špecificky potrebujú

SaaS spoločnosť s jedným obchodníkom si často vystačí s denným synchronizovaním do všeobecného účtovného nástroja. Marketplace platformy nie, a to z troch dôvodov.

Po prvé, stoja uprostred peňazí. Kupujúci zaplatí platforme, platforma drží finančné prostriedky a následne vyplatí predajcov znížené o poplatky. Každý z týchto pohybov predstavuje samostatnú účtovnú udalosť ovplyvňujúcu rôzne účty: peňažné prostriedky, záväzky voči predajcom, výnosy platformy, DPH na úhradu, rezervy na vrátenie peňazí. Tabuľka payments so stĺpcom status to nezaznamená.

Po druhé, fungujú naprieč daňovými jurisdikciami. EÚ marketplace s predajcami v Litve, Nemecku a Poľsku a kupujúcimi v rámci celého bloku musí uplatniť správne zaobchádzanie s DPH na transakciu, overiť IČ DPH predajcov prostredníctvom VIES a vygenerovať výkazy, ktoré uspokoria každý miestny úrad. Zvládnuť to v kóde aplikácie a následne to odsúhlasiť s ohraničeným účtovným systémom je miesto, kde väčšina marketplace platforiem potichu zlyháva.

Po tretíkrát, objem dát nie je vhodný na manuálne účtovníctvo. Platforma, ktorá spracuje desaťtisíc objednávok mesačne, vytvára desiatky tisíc účtovných zápisov. To musí byť plne automatizované od začiatku do konca, inak sa finančný tím stane úzkym hrdlom rastu.

Ako API funguje krok za krokom

Mechanika je menej exotická, než znie. Typický proces pre marketplace objednávku vyzerá nasledovne:

1. Vaša platforma vygeneruje finančnú udalosť. Kupujúci dokončí platbu. Váš backend zavolá ledger API s údajmi, ako sú: ID objednávky, kupujúci, predajca, hrubá suma, sadzba DPH, provízia platformy, mena a idempotentný kľúč (idempotency key).

2. Účtovná kniha vytvorí účtovný zápis. API preloží túto udalosť na debety a kredity. Pri priamom predaji na marketplace to môže znamenať zaúčtovanie na ťarchu účtu peňazí na ceste, v prospech účtu záväzkov voči predajcovi v čistej výške, v prospech účtu výnosov platformy za províziu a v prospech účtu DPH na úhradu za daňovú časť. Všetko je vyrovnané. Všetko je zaúčtované atómovo.

3. Záznam sa zapíše nemenným spôsobom. Po zaúčtovaní má záznam identifikátor a časovú pečiatku a nedá sa upraviť. Ak je niečo nesprávne, zaúčtujete stornujúci zápis a opravený zápis. Audítorská stopa je tu hlavným účelom.

4. Následné výkazy sa aktualizujú v reálnom čase. Predvaha, zostatky záväzkov voči predajcom, prehľady DPH a výkaz ziskov a strát odrážajú nový záznam okamžite. Neexistuje žiadna nočná úloha, export ani okno na odsúhlasovanie, počas ktorého by sa čísla „ustálili“.

5. Webhooky upozornia váš systém. Udalosti ako sale_invoice.paid alebo bank_transaction.matched sa odošlú do vašich koncových bodov, takže váš produkt môže reagovať bez nutnosti neustáleho dopytovania (polling). V kombinácii s idempotentnými kľúčmi to znamená, že opakované požiadavky sú bezpečné a pri výpadkoch siete nevznikajú duplicity.

Dôležitý návrhový bod: účtovná kniha je zdrojom pravdy o tom, čo sa finančne stalo. Databáza vašej aplikácie je zdrojom pravdy pre stav produktu. Tieto dva systémy sa zhodujú, pretože účtovná kniha sa zapisuje na základe aplikačných udalostí, a nie naopak.

Účtovný rozvrh je miesto, kde vzniká návrh systému

Väčšina duševnej práce pri nastavovaní účtovnej knihy pre marketplace spočíva v účtovnom rozvrhu. Ide o zoznam pomenovaných položiek, na ktoré dopadajú debety a kredity: hotovostné účty podľa bánk, účty záväzkov voči predajcom (často jeden pre každého predajcu alebo jeden súhrnný s analytickou evidenciou), výnosy platformy podľa kategórií, DPH na úhradu podľa krajín, rezervy na vrátenie peňazí, rezervy na reklamácie atď.

Niekoľko vzorov, ktoré sa opakujú naprieč marketplace platformami:

  • Peniaze predajcov sú záväzkom, nie výnosom. Peniaze, ktoré držíte v mene predajcov, predstavujú záväzok. Považovať ich za výnos a výplatu zaúčtovať neskôr do „nákladov“ je klasická chyba, ktorá sa ukáže pri audite hĺbkovej kontroly (due diligence).
  • DPH je samostatný záväzok pre každú krajinu. Ak pôsobíte v jurisdikciách EÚ, chcete mať pre každú krajinu samostatné účty DPH na úhradu, aby sa výkazy dali prehľadne priradiť.
  • Poplatky je nutné modelovať v momente ich vzniku, nie v momente vyplatenia. Akruálne účtovníctvo tu nie je voliteľné.
  • Vrátenia peňazí, reklamácie a spory potrebujú vlastné účty, aby výkaz ziskov a strát odrážal skutočnosť a nie kolobeh kladných a záporných predajov.

Kvalitné ledger API vám umožňuje definovať túto štruktúru raz a potom na ňu s istotou účtovať, namiesto toho, aby ste znovu vynájdením účtovnej logiky zaťažovali kód platobného procesu.

Nemennénosť, uzávierka období a prečo na tom záleží audítorom

Pojem nemennénosť (immutability) môže znieť ako detail databázy. V skutočnosti však ide o rozdiel medzi účtovníctvom, ktoré audítor podpíše, a takým, ktoré nepodpíše.

Ak marketplace dokáže potichu upravovať záznamy z minulého štvrťroka, potom sú čísla za minulý štvrťrok z účtovného hľadiska nepoznateľné. Nemenná účtovná kniha vynucuje pravidlo, že história je históriou. Opravy sú viditeľné ako opravy. Uzavieranie období túto vlastnosť rozširuje: po uzatvorecii mesiaca sa do tohto obdobia nemôžu dostať žiadne nové záznamy ani úpravy bez explicitnej akcie opätovného otvorenia, ktorá sa taktiež zaznamená.

Pre platformy, ktoré budú v budúcnosti získavať financovanie, prechádzať akvizíciou alebo daňovou kontrolou, nejde o „príjemný doplnok“. Je to presne to, vďaka čomu sú účtovné knihy obhájiteľné. Účtovná kniha produktu Nordlet je na tento účel navrhnutá štandardne, pričom nemenná štruktúra podvojného účtovníctva a uzavieranie období sú v nej priamo zabudované, nie dodatočne pridané.

DPH v EÚ: oblasť, ktorá pohlcuje čas vývojárov

DPH je oblasť, kde väčšina účtovných projektov marketplace platforiem prekračuje plánovaný čas. Pravidlá nezahŕňajú len jednoduché „uplatnenie percenta“. Závisia od toho, kde sa nachádza kupujúci, kde predajca, čo sa predáva, či je predajca registrovaný pre DPH, či sa platforma považuje za osobu povinnú platiť daň (deemed supplier) podľa pravidiel pre elektronický obchod z roku 2021 a aký vykazovací režim platí lokálne.

Seriózne ledger API pre EÚ zabezpečuje minimálne:

  • VIES overenie IČ DPH predajcov a kupujúcich, ideálne s ukladaním výsledkov do vyrovnávacej pamäte a označením na transakcii
  • Logiku sadzieb DPH pre jednotlivé krajiny vrátane znížených sadzieb a oslobodení od dane
  • Generovanie výkazov i.SAF pre litovské daňové úrady a ekvivalentné štruktúrované výstupy, ak ich vyžadujú iné členské štáty
  • E-fakturáciu Peppol BIS 3.0 pre jurisdikcie prechádzajúce na povinnú elektronickú fakturáciu
  • Riešenie OSS/IOSS pre cezhraničný predaj B2C

Riešiť to v kóde aplikácie pre každú krajinu predstavuje prácu pre celý vývojový tím, ktorá sa nikdy skutočne neskončí, pretože pravidlá sa neustále menia. Presun tejto logiky do vrstvy účtovnej knihy predstavuje pragmatické rozhodnutie.

Odsúhlasovanie je miesto, kde sa ukazuje úspora času

Akonáhle sa účtovná kniha stane zdrojom pravdy, bankové odsúhlasovanie prestane byť mesačným bojom. Výpisy z banky prichádzajú, účtovná kniha už vie, čo by tam malo byť, a párovanie prebieha vo veľkej miere automaticky.

Realistická verzia tohto procesu neznamená „nulovú manuálnu prácu“. Znamená „výnimky sa zobrazia samy“. Tok párovania na jedno kliknutie pre deväťdesiat percent transakcií, ktoré sa presne zhodujú, plus fronta desiatich percent vyžadujúcich ľudské rozhodnutie, predstavuje to, čo prináša dobre navrhnuté reconciliation API. Inteligentné párovanie platieb zvládňa čiastočné platby, preplatky a platby pokrývajúce viaceré faktúry bez toho, aby človek musel písať pravidlá pre každý prípad.

SEPA export (formát pain.001) pre výplaty dodávateľom a predajcom uzatvára cyklus na výdajovej strane. Vo svojom produkte schválite výplaty, účtovná kniha vygeneruje SEPA súbor, banka ho spracuje a výsledný pohyb sa automaticky spáruje späť.

Vlastný vývoj vs. nákup vs. integrácia

Tímy marketplace platforiem zvyčajne zvažujú tri prístupy. Tu je ich porovnanie v kľúčových oblastiach.

Prístup Čas do spustenia Pripravenosť na audit Spracovanie DPH v EÚ Začlenenie do vášho produktu
Vlastný vývoj účtovnej knihy 12 až 24+ mesiacov Závisí výlučne od vášho tímu Vyvíjate sami, pre každú krajinu Áno
Synchronizácia do Xero / QuickBooks Týždne Dobré pre účtovnú stránek, slabé pre špecifické procesy marketplace Čiastočné, vyžaduje doplnky Nie, nachádza sa v samostatnom nástroji
Vstavané ledger API (napr. Nordlet) Týždne Zabudované prostredníctvom nemenného zápisu a uzávierky období Zabudované pre EÚ vrátane VIES a i.SAF Áno, cez API a SDK

Vlastný vývoj sa oplatí vtedy, ak je účtovníctvo vaším hlavným produktom. Pre všetkých ostatných táto matematika málokedy vychádza. Synchronizácia do tradičného účtovného nástroja funguje pre firmy s jedinou entitou, ale pri marketplace procesoch naráža na limity: rozdelené platby, analytické účty predajcov, DPH pre jednotlivé krajiny a scenáre, kde je platforma platiteľom dane, sa nedajú čisto priradiť do nástrojov určených pre účtovníctvo jednej firmy.

Integrovanie API-first účtovnej knihy je cesta, ku ktorej smeruje väčšina moderných platforiem. Účtovné knihy fungujú priamo v používateľskom prostredí vášho produktu, predajcovia vidia svoje vlastné financie vo vašom rozhraní a komplexná legislatíva sa rieši na úrovni infraštruktúry.

Čo si všímať pri výbere ledger API

Krátky zoznam, ktorý sa oplatí mať otvorený počas hovorov s dodávateľmi:

  • Nemenné úložisko podvojného účtovníctva s opravami prostredníctvom stornujúcich zápisov, nie editovateľnými riadkami
  • Uzavieranie období so zaznamenanými akciami opätovného otvorenia
  • Idempotentné kľúče pri každom koncovom bode zápisu
  • Webhooky pre udalosti, na ktoré váš produkt potrebuje reagovať, nielen polling API
  • Typové SDK v jazykoch, ktoré váš tím skutočne používa
  • Logika DPH pre jednotlivé krajiny vrátane VIES, i.SAF alebo ekvivalentov a OSS/IOSS
  • Podpora viacerých spoločností v prípade, že prevádzkujete viaceré subjekty alebo to plánujete
  • Riadenie prístupu na základe rolí dostatočne podrobné na oddelenie vývojárov, účtovníkov a používateľov s právom čítania
  • Exporty výkazov vo formátoch XLSX, PDF a JSON s upozorneniami cez webhook, keď sú veľké výkazy pripravené
  • Testovacie prostredie (sandbox), ktoré kopíruje správanie produkcie, a nie orezanú demo verziu

Ak dodávateľ nedokáže na technickom stretnutí predviesť prvé tri body, zvyšok nemá zmysel riešiť.

Čo by som urobil na začiatku

Ak marketplace začína s touto prácou od nuly, odporúčaná postupnosť šetrí najviac problémov:

  1. Pred napísaním akéhokoľvek kódu si na tabuli zakreslite skutočné toky peňazí. Kto komu čo dlhuje, v akom momente, v akej mene a s akým zaobchádzaním s DPH.
  2. Na základe tejto schémy navrhnite účtovný rozvrh. Záväzky voči predajcom, výnosy platformy, DPH na úhradu podľa krajín, rezervy. Pred spustením do produkcie si ho dajte skontrolovať účtovníkom.
  3. Vyberte si vrstvu účtovnej knihy. Vlastný vývoj, synchronizácia alebo integrácia. Buďte úprimní v tom, čo váš tím dokáže reálne dodávať a spravovať.
  4. Implementujte jeden proces od začiatku do konca: objednávka -> faktúra -> výplata -> odsúhlasenie. Overte, či sedí. Až potom škálujte.
  5. Zapnite uzatváranie období hneď po tom, čo sa prvý mesiac úspešne uzavrie. Táto disciplína sa časom vypláca.

Tímy, ktoré to urobia správne, berú účtovnú knihu ako základnú infraštruktúru, a nie ako druhotný výkazový nástroj. To je tá zmena, vďaka ktorej je diskusia o financiách s audítorom, investorom alebo daňovým úradom krátka namiesto toho, aby bola vyčerpávajúca.

FAQ

Je API podvojného účtovníctva to isté ako účtovná integrácia?

Nie. Integrácia synchronizuje údaje z vášho produktu do externého účtovného nástroja, zvyčajne s oneskorením. Ledger API je samotný účtovný systém, do ktorého sa zapisuje priamo a v reálnom čase. Tento rozdiel je dôležitý, pretože integrácie strácajú presnosť na okrajoch: čiastočné platby, viac mien, rozdelenia na marketplace. Ledger API ich zaznamenáva natívne.

Nemôžeme jednoducho použiť reporty od spoločností Stripe alebo Adyen?

Reporty od platobných brán informujú o tom, čo prešlo cez danú bránu. Nejde o knihy podvojného účtovníctva. Nevedia o vašich záväzkoch voči predajcom, ktoré ešte neboli vyplatené, o vašich záväzkoch DPH v rôznych krajinách ani o vašich nákladoch mimo platobnej brány. Predstavujú jeden vstup do účtovnej knihy, nie jej náhradu.

Aká nemenná je nemennnosť v praxi?

Záznamy sa nedajú upravovať. Opravy predstavujú nové záznamy, ktoré odkazujú na tie pôvodné. Ide o rozhodnutie o architektúre, nie o technológii. Každá kompetentná účtovná kniha to bude vynucovať. Dôvod, prečo na tom záleží, spočíva v tom, že prístup „upravili sme to, aby to sedelo s bankou“ presne vystihuje vzorec, ktorý robí účtovné knihy nedôveryhodnými.

A čo marketplace platformy mimo EÚ?

Mechanika podvojného účtovníctva je univerzálna. Daňová logika nie. Ledger API prispôsobené pre DPH v EÚ zvládne operácie závislé od EÚ a dokáže podporiť transakcie mimo EÚ, ale ak je vaším primárnym trhom americká daň z obratu (sales tax) alebo latinskoamerické režimy e-fakturácie, pred prijatím záväzku si overte konkrétne pokrytie legislatívy.

Ako dlho trvá samotná implementácia?

Pre marketplace s čistým modelom udalostí trvá integrovanie ledger API do bodu spustenia jedného procesu od začiatku do konca zvyčajne niekoľko týždňov vývoja. Úplná migrácia staršieho nastavenia vrátane historických údajov trvá dlhšie. Premennou je takmer vždy stav existujúcich údajov, nie samotné API.