Nordlet

← Dokumentacija / Vodiči

Priznavanje prihoda (MSFI 15 / ASC 606)

Odgođeni prihodi, linearni rasporedi, rasporedi prema prekretnicama i postotku dovršenosti, obveze po osnovi povrata, pretplate.

Odgoda prihoda po stavci i raspoređeno priznavanje: obveze po ugovorima, metode s obzirom na protek vremena, alokacija transakcijske cijene, rezerviranja za povrate, pretplate i izmjene ugovora. Zadani tijek ostaje nepromijenjen - obična stavka računa i dalje u cijelosti priznaje prihod prilikom izdavanja (u određenom trenutku), što je u skladu sa standardom 606/15 za jedinstvenu obvezu izvršenja koja je podmirena pri isporuci. Sve navedeno u nastavku primjenjuje se opcionalno (opt-in) po pojedinoj stavci računa.

Softver je prilagođen standardima 606/15; izvještajni subjekt je taj koji je (ili nije) u skladu s njima. Odabir ispravne metode po obvezi, procjena pojedinačnih prodajnih cijena i stopa povrata te donošenje prosudbe o tome jesu li preostala roba ili usluge zasebni prilikom izmjene ugovora i dalje ostaju računovodstvene prosudbe koje donosi obveznik izvještavanja.

Računi

Tri konta glavne knjige podržavaju ove tijekove, povezana kao ključevi pravila knjiženja (mogu se nadjačati po tvrtki putem ledger/posting-rules/update): revenue.deferredIncome → 4910 "Ateinančių laikotarpių pajamos" (obveza po ugovoru), revenue.refundLiability → 4450 "Grąžinimo įsipareigojimai pirkėjams", revenue.contractAsset → 2910 "Sukauptos pajamos". Postojeće tvrtke dobivaju konta ponovnom primjenom predloška kontnog plana (ledger/accounts/apply-template).

Obveze izvršenja na stavkama računa

Stavke u sales/invoices/create|update prihvaćaju objekt recognition: { method, startDate, endDate, milestones } pri čemu method može biti jedan od sljedećih:

Metoda Ponašanje pri izdavanju Priznavanje
point_in_time (zadano) KONTO prihod u cijelosti pri izdavanju, neizmjenjeno
ratable (startDate..endDate) KONTO odgođeni prihod Mjesečni raspored ponderiran prema danima tijekom razdoblja usluge
milestone (milestones[], postoci čiji je zbroj 100) KONTO odgođeni prihod jedna tranša po prekretnici, priznaje se pri nastanku događaja
percent_complete KONTO odgođeni prihod putem izvješća o kumulativnom napretku

Potraživanja od kupaca (AR) i PDV ostaju netaknuti: izdavanjem se knjiženi dugovni iznos (DR) 2410 za bruto iznos, potražni iznos (CR) 4492 za PDV, a neto iznos se dijeli između prihoda (stavke u određenom trenutku) i konta 4910 (odgođene stavke). Rasporedi se pohranjuju u izvještajnoj valuti tvrtke prema tečaju na dan izdavanja - sales/recognition-schedules/list (sales:read) prikazuje svaku tranšu sa statusom pending | recognized | cancelled (u tijeku | priznato | poništeno).

Alokacija transakcijske cijene. S više od jedne stavke, standaloneSellingPrice na svakoj stavci raspodjeljuje neto iznos računa proporcionalno na obveze (MSFI 15, §76–80); raspoređeni iznos - a ne iskazana cijena stavke - upravlja raspodjelom na prihode/odgođene prihode i rasporedima. PDV ostaje vezan uz stavke računa kako je iskazano.

Mehanizam priznavanja

Priznavanje knjiži dugovno (DR) 4910 / potražno (CR) prihod (konto usluge/proizvoda i troškovno mjesto s izvorne stavke) kao jedinstveni temeljni dokument po pokretanju, zabilježen u sales/recognition/runs/list.

  • POST /v1/sales/recognition/compute (sales:read) { asOfDate? } - probni pregled dospjelih linearnih tranša.
  • POST /v1/sales/recognition/run (sales:write) { asOfDate?, postingDate?, scheduleIds? } - knjiženje dospjelih linearnih tranša ili točno određenih tranši navedenih kroz scheduleIds (bilo koja metoda).
  • POST /v1/sales/recognition/progress (sales:write) { invoiceLineId, percentComplete, date? } - stavke s postotkom dovršenosti: prijavljivanje kumulativnog napretka; novo ostvarena razlika knjiži se odmah, a nazadovanja (regresije) se odbijaju.
  • POST /v1/sales/recognition/summary (sales:read) - priznato do danas, preostali iznos, broj stavki na čekanju i sljedeći datum dospijeća po stavci, uz ukupne iznose za tvrtku.

Tri događaja pokreću priznavanje bez potrebe za stalnim provjeravanjem (polling): zaključenje razdoblja (ledger/periods/lock) najprije priznaje sve što dospijeva do kraja razdoblja, s knjiženjem na datum završetka razdoblja; izdavanje primopredajnog zapisnika (sales/acts/issue) priznaje povezane tranše prekretnica s računa na datum zapisnika; te mjerač vremena dospijeća rasporeda koji se postavlja na sljedeći linearni datum dospijeća i knjiži za svaku tvrtku kada on nastupi (zaključeno razdoblje ponovno pokušava knjiženje kasnije). Prekretnice su namjerno temeljene na događajima - expectedDate neke prekretnice predstavlja informaciju za planiranje i sama po sebi nikada ne pokreće priznavanje.

Promjenjiva naknada - obveza po osnovi povrata

refundEstimatePercent na stavci odobrava taj udio (raspoređenog) neto iznosa na konto 4450 umjesto na prihod ili odgođeni prihod prilikom izdavanja - očekivani povrati su isključeni iz transakcijske cijene (MSFI 15 §55). Stanje za pojedini račun nalazi se u sales/refund-liability/list (procijenjeno, iskorišteno, uočeni ostvareni povrati, preostalo).

Stvarni iznosi: odobrenje (kreditna nota) za račun zadužuje konto 4450 do visine preostale obveze prije diranja u prihod. sales/refund-liability/true-up (sales:write) { invoiceId, estimatedTotal, date? } revidira procjenu i knjiži razliku u odnosu na prihod u bilo kojem smjeru (s donjom granicom na iskorišteni iznos). Povrati od strane pružatelja platnih usluga (PSP) koji su usklađeni s računom bilježe se na obvezi i odašilju webhook refund_liability.actual - oni se ne knjiže izravno na teret konta 4450, jer smanjenje prihoda i izlaznog PDV-a zahtijeva odobrenje kao knjigovodstvenu ispravu za PDV.

Pretplate - ugovori i računi

Dodjeljivanjem parametra billingPeriod (monthly | quarterly | annual) ugovoru, funkcija agreements/generate-invoice (agreements:write) kreira nacrt računa za sljedeće razdoblje za koje nije izdan račun: stavke proizašle iz stavki ugovora (ili vrijednost value kao jedna stavka po razdoblju), svaka s linearnim priznavanjem tijekom razdoblja usluge. Funkcija agreements/billing/run { asOfDate? } obuhvaća sve aktivne ugovore, generira svako dospjelo razdoblje i zaključuje ugovore koji su u potpunosti fakturirani nakon isteka njihova roka. Konačna kratka razdoblja proporcionalno se dijele prema danima; autoRenew produljuje ugovor za njegovo vlastito trajanje i nastavlja s fakturiranjem. Generirani računi nose oznaku agreementId (može se filtrirati u sales/invoices/list).

Izmjene ugovora

POST /v1/sales/recognition/modify (sales:write) { invoiceLineId, approach, date?, newEndDate?, newMilestones? }:

  • prospective - poništavanje rasporeda na čekanju i ponovni raspored nepriznatog ostatka prema novim uvjetima počevši od datuma izmjene (preostala roba/usluge su zasebne: MSFI 15 §20(a), §21(a)). Linearne stavke primaju newEndDate; stavke s prekretnicama primaju newMilestones (postotci preostalog iznosa).
  • cumulative_catch_up (samo za linearne) - ponovni izračun prihoda kao da su se novi uvjeti primjenjivali od početka i trenutno knjiženje razlike u bilo kojem smjeru (jedinstvena djelomično podmirena obveza: §21(b)); ostatak se ponovno raspodjeljuje.

Smanjenja cijena provode se kroz odobrenja (kreditne note): odobrenje za račun s rasporedima na čekanju najprije zadužuje odgođeni prihod i skraćuje plan na čekanju s njegove krajnje strane, zatim obvezu po osnovi povrata, te tek na kraju prihod. Povećanja cijena predstavljaju dodatne račune s vlastitim priznavanjem - prospectivno po samoj svojoj prirodi.

Ograničenja

  • Rasporedi i knjiženja priznavanja su iznosi u izvještajnoj valuti (EUR) fiksirani prema tečaju na dan izdavanja; odgođeni saldo se nakon izdavanja ne preračunava prema tečajnim razlikama.
  • Konto imovine po ugovoru (2910) naveden je u kontnom planu i kao ključ knjiženja, ali se automatski tijek nenaplaćenih prihoda još uvijek ne knjiži na njega - priznavanje prije fakturiranja trenutno predstavlja ručni temeljni dokument.
  • Alokacija zahtijeva pojedinačnu prodajnu cijenu na svim stavkama računa ili ni na jednoj; rezidualni pristup (§79(c)) nije implementiran.
  • Obveze po osnovi povrata prate se bez PDV-a na razini računa; pripadajuća imovina za pravo na povrat vraćene robe (§B25) nije modelirana.
  • Kumulativno usklađivanje primjenjuje se na linearne stavke; ponovno planiranje prekretnica isključivo je prospectivno; stavke s postotkom dovršenosti prilagođavaju se putem izvješća o napretku, a ne putem funkcije modify.
  • Značajne financijske komponente (§60–65), nenovčana naknada i naknada plativa kupcu izvan su obuhvata.
  • Automatska pokretanja dospjelih rasporeda knjiže se na dan kada se aktiviraju; naknadna knjiženja u zaključena razdoblja se odbijaju - otključajte razdoblje ili upotrijebite otvoreni datum knjiženja.