Nordlet

← Emuārs

Kas ir grāmatvedes API? Vienkāršs ceļvedis platformu izstrādātājiem

Vienkāršs grāmatvedības API skaidrojums, kas to atšķir no nodokļu API vai maksājumu API un kas jāpārbauda pirms tā integrēšanas savā sistēmā.

Nordlet Team · · 7 min. lasīts

Grāmatvedības API ir saskarne, kas ļauj vienai programmai kārtot citas programmas grāmatvedību. Jūsu programmatūra nosūta finanšu notikumu, izmantojot HTTP. API pārvērš šo notikumu sabalansētos divkāršā ieraksta (double-entry) žurnāla ierakstos pret kontu plānu, saglabā tos tā, lai tos nevarētu nemanāmi mainīt, piemēro nodokļu režīmu un atgriež atskaites, dokumentus un eksportus, izmantojot to pašu saskarne.

Šis skaidrojums paveic lielāko daļu darba. Viss pārējais šajā rakstā ir tā secinājums.

Versija vienā teikumā

Grāmatvedības API pieņem finanšu notikumus no jūsu lietojumprogrammas, katru no tiem pārvērš sabalansētā žurnāla ierakstā, saglabā tos nemainīgā veidā (immutably) kopā ar to nodokļu režīmu un pamatojošiem dokumentiem, kā arī padara iegūto virsgrāmatu (ledger), dokumentus un atskaites pieejamus kā programmējamus galapunktus (endpoints).

Ja produkts sevi dēvē par grāmatvedības API, bet neizveido žurnāla ierakstus, tas ir kaut kas cits ar labu nosaukumu. Tas nebūt nenozīmē ko sliktu. Tas vienkārši nozīmē, ka tas neveiks to darbu, ko jūs gatavojaties tam uzticēt.

Kas grāmatvedības API nav

Četras radniecīgas produktu kategorijas bieži tiek jauktas ar grāmatvedības API, parasti projekta vēlīnā stadijā.

Kategorija Ko tā dara Ko tā nedara
Nodokļu aprēķināšanas API Atgriež pareizo likmi vai nodokļa summu darījumam Neuztur jūsu grāmatvedību un neglabā pamatojošos dokumentus lēmuma saglabāšanas periodam
Maksājumu API Pārvieto naudu starp pusēm un sniedz pārskatus par šīm kustībām Nereģistrē nopelnīto komisiju, maksājamo PVN vai saistības pret pārdevēju laikā starp maksājumu un izmaksu
Apvienotais jeb agregatora API Nolasa un ieraksta datus jūsu klienta esošajā grāmatvedības programmatūrā Nedarbojas kā patiesības avots (system of record); jūsu grāmatvedība atrodas tajā rīkā, ko katrs klienta jau izmanto
Atskaišu vai biznesa analītikas (BI) API Nolasa rādītājus no esošas virsgrāmatas un vizualizē tos Neizveido ierakstus, no kuriem rādītāji ir atvasināti

Katram no šiem risinājumiem ir reāls pielietojums. Platformai, kurai jābūt galvenajam datu avotam, ir nepieciešams grāmatvedības API tās pamatos, nevis tā vietā.

Piecas lietas, kas grāmatvedības API ir jāspēj paveikt

1. Reģistrēt sabalansētus ierakstus. Katrs notikums kļūst par debetu un kredītu, kuru summa ir vienāda. Kad pircējs samaksā €100 tirdzniecības vietā (marketplace), kas ietur €15 komisiju, ieraksts debetē starpreģistrācijas kontu par €100, kreditē pārdevēja parādu (payable) par €85 un kreditē komisijas ieņēmumus par €15. Šī nav grāmatvedības formalitāte. Tā ir strukturāla pārbaude, kas atklāj veselas integrācijas kļūdu grupas, pirms tās nonāk atskaitē.

2. Saglabāt vēsturi. Ievietotu ierakstu nerediģē. Kļūda tiek labota ar grāmatojuma atsaukšanu (reversal) un labotu ierakstu, un abi ir saistīti ar oriģinālu. Slēgtie mēneši tiek bloķēti, lai tajos nevarētu datēt jaunus ierakstus.

3. Noteikt nodokļus. ES tirdzniecībā tas nozīmē piegādes vietas noteikšanu, apgriezto PVN (reverse charge), PVN reģistrācijas numuru pārbaudi oficiālajā reģistrā un pierādījumus, kas pamato šo lēmumu – viss tiek saglabāts līdzās darījumam, nevis izmests pēc aprēķina veikšanas.

4. Veikt saskaņošanu (reconciliation) ar ārējiem naudas līdzekļiem. Grāmatvedība, kas nekad nesatiekas ar bankas konta izrakstu, ir tikai minējums. API ir jāuzņem kontu izraksti vai pakalpojumu sniedzēju norēķini un jāsalīdzina tie ar reģistrēto informāciju.

5. Eksportēt. Atskaites, dokumenti un audita faili formātos, ko pieņem cilvēks grāmatvedis un VID.

Produkts, kas veic pirmās trīs funkcijas, bet ne pēdējās divas, joprojām liks kādam katru mēnesi strādāt ar izklājlapām.

Kā izskatās reāls izsaukums

Mehānika ir vienkāršāka nekā pati grāmatvedība. Nordlet API katra darbība ir RPC stila POST pieprasījums ar paredzamu struktūru:

POST /v1/{module}/{resource}/{action}
Authorization: Bearer <api key>
Idempotency-Key: <your event id>

Jūs izveidojat pārdošanas rēķinu un pēc tam to izrakstāt. Izrakstīšana ir brīdis, kurā notiek grāmatošana: dokuments saņem savu nepārtraukto numuru, tiek izveidots sabalansēts žurnāla ieraksts un kopā ar to tiek reģistrētas PVN rindas. Jūsu platformai nekad nav pašai jāveido debeti un kredīti.

Trīs detaļas šajā fragmentā ir svarīgākas par galapunkta nosaukumu:

  • Atslēgas piekļuves joma (scope). Atslēgai ir tādas tiesības kā sales:write, tāpēc integrācija saņem tikai tai nepieciešamo piekļuvi.
  • Idempotences atslēga (idempotency key). Atkārtojiet to pašu pieprasījumu ar to pašu datu kopu, un jūs saņemsiet saglabāto atbildi, nevis otru rēķinu. Nosūtiet to pašu atslēgu ar citu datu kopu, un pieprasījums tiks noraidīts ar kļūdu idempotency_key_reuse, nevis klusībā pieņemts.
  • Nauda kā virknes (strings). Summas ir decimālvērtību virknes, nevis peldošā komata skaitļi (floats), jo peldošā komata skaitļi zaudē centus tādā veidā, kas parādās gada slēgumā.

Kur tas atrodas jūsu arhitektūrā

Jūsu lietojumprogramma paliek lietotāja saskarne un biznesa notikumu avots. Grāmatvedības API kļūst par finansiālo patiesības avotu tās aizmugurē. Plūsma parasti ir šāda:

  1. Jūsu produktā kaut kas notiek: pasūtījums, atmaksa, izmaksa, abonementa atjaunošana.
  2. Jūsu aizmugursistēma (backend) izsauc grāmatvedības API, nosūtot notikumu un idempotences atslēgu.
  3. API izveido žurnāla ierakstu, piemēro PVN un atgriež identifikatorus, kurus saglabājat pret saviem ierakstiem.
  4. Tīmekļa āķis (webhook), piemēram, sale_invoice.paid, informē jūsu sistēmu, kad mainās statuss, lai jūs varētu reaģēt uz notikumiem, nevis pastāvīgi vaicāt datus (polling).
  5. Bankas darījumi nonāk, izmantojot bankas datu plūsmu (bank feed) vai izraksta importu, un tiek saskaņoti ar reģistrētajiem dokumentiem.
  6. Perioda beigās no tiem pašiem datiem tiek ģenerētas atskaites un nodokļu reģistri, un slēgtais mēnesis tiek bloķēts.

Neviens no šiem soļiem neprasa cilvēkam atvērt grāmatvedības lietojumprogrammu. Tā ir šīs kategorijas būtība.

Kā tas salīdzināms ar alternatīvām

Pieeja Sākotnējais ieguldītais darbs Audita pozīcija Mērogojamība līdz ar darījumu apjomu
Izklājlapas un manuāla ievade Viszemākā Vāja; vēsture ir rediģējama Nē
Grāmatvedības programma un CSV eksports Zema Pilnībā atkarīga no disciplīnas Vāja; kāds importē failus
Agregatora API katra klienta grāmatvedībā Vidēja Panto to, ko dara klienta rīks Jā, bet jums nepieder dati
Iegultais grāmatvedības API (Embedded accounting) Vidēja Spēcīga, ja virsgrāmata ir nemainīga un periodi ir bloķēti Jā
Izveidot savu virsgrāmatu Augstākā Spēcīga tikai tad, ja izveidojat arī kontrolmehānismus Jā, un jums tā ir jāuztur mūžīgi

Savas sistēmas izveide ir leģitīma izvēle dažām komandām. Tas sīkāk aplūkots mūsu ceļvedī par izveidi vai iegādi tirgus vietām.

Kas jāpārbauda pirms integrācijas

  • Vai atlikums tiek aprēķināts vai saglabāts? Pajautājiet, vai pārdevēja atlikums ir vaicājums žurnāla rindām vai kolonna, ko kāds atjaunina. Tikai viens no šiem veidiem izturēs auditu.
  • Kas notiek pieprasījuma atkārtošanas (retry) gadījumā? Nosūtiet to pašu pieprasījumu divreiz un saskaitiet ierakstus.
  • Vai var rediģēt ievietotu ierakstu? Atbildei jābūt nē, ar dokumentētu labošanas ceļu.
  • Vai bloķēts periods patiešām noraida grāmatojumu? Izmēģiniet to smilšu kastē (sandbox). Nordlet atgriež 409 kļūdu grāmatojumam, kura datums ir iekš bloķēta perioda.
  • Kā tiek attēlota nauda? Decimālvērtību virknes vai mazākās naudas vienības veselos skaitļos. Nekad peldošā komata skaitļi.
  • Kas atrodas audita žurnālā? Veicējs, darbība, vienība un pašas izmaiņas, kas ir pieejamas vaicājumiem, nevis noslēptas žurnāla failos.
  • Kādi ir pieprasījumu limiti (rate limits)? Nordlet atļauj 300 pieprasījumus minūtē uz vienu API atslēgu un ziņo par atlikušo limitu atbildes galvenajās (headers). Neatkarīgi no skaitļa, noskaidrojiet to pirms sinhronizācijas izstrādes.
  • Kā jūs iegūstat savus datus ārā? Atskaites, dokumenti un žurnāli formātos, ko varat nodot grāmatvedim.

Katra no šīm lietām ir pārbaudāma pēcpusdienas laikā pret izmēģinājumu uzņēmumu smilšu kastē. Piegādātāju funkciju saraksti nav pierādījums, reproducējams tests ir.

FAQ

Vai grāmatvedības API ir tas pats, kas grāmatvedības programmatūra?

Tā ir grāmatvedības programmatūra ar nomainītu saskarni. Tradicionālā grāmatvedības programma novieto cilvēku virsgrāmatas priekšā, savukārt grāmatvedības API tur novieto jūsu kodu. Pamatā esošie pienākumi, divkāršā ieraksta struktūra un atskaites ir vienādas.

Vai man joprojām ir nepieciešams grāmatvedis, ja es to izmantoju?

Jā. API automatizē reģistrēšanu, aprēķinu un atskaišu sagatavošanu. Tā nepieņem profesionālus lēmumus par klasifikāciju, uzkrājumiem vai to, kā jāapstrādā konkrēts līgums, un vairumā valstu tā neparaksta un neiesniedz jūsu gada pārskatus.

Vai es varu izmantot grāmatvedības API, nesaprotot divkāršā ieraksta principu?

Daļēji. Laba API izveido žurnāla ierakstus jūsu vietā no biznesa dokumenta, piemēram, rēķina. Tomēr jums joprojām ir jāsaprot, ko konti nozīmē, kad lasāt atskaiti vai skaidrojat bilanci auditoram.

Kāda ir atšķirība starp grāmatvedības API un virsgrāmatas (ledger) API?

Virsgrāmatas API reģistrē sabalansētas kustības starp kontiem. Grāmatvedības API to dara un papildus pievieno normatīvo slāni: dokumentus ar juridisku numerāciju, PVN apstrādi, nodokļu reģistrus, pamatlīdzekļus, perioda slēgšanu un atskaites, ko sagaida konkrētā jurisdikcija. Katra grāmatvedības API satur virsgrāmatu, bet ne katra virsgrāmata ir grāmatvedības sistēma.

Cik ilga ir integrācijas izstrāde?

Pirmajai strādājošajai plūsmai – izveidot klientu, izrakstīt rēķinu, saņemt maksājumu, redzēt žurnāla ierakstu – plānojiet dienas, nevis nedēļas, izmantojot tipizētu SDK un smilšu kasti. Produkcijas integrācija, kas aptver atmaksas, labojumus, vairākas valūtas, saskaņošanu un perioda slēgšanu, ir apjomīgāks darbs, un godīgs novērtējums ir atkarīgs no tā, cik no šiem scenārijiem jūsu produkts reāli ģenerē.

Papildu lasāmviela