Nordlet

← Dokumentacija / Vodiči

Pripoznavanje prihodkov (MSRP 15 / ASC 606)

Časovne razmejitve prihodkov, časovno sorazmerni načrti, načrti glede na mejnike in stopnjo dokončanosti, obveznosti za vračila, naročnine.

Časovno razmejevanje prihodkov in načrtovano pripoznavanje po postavkah: obveznosti do kupcev (contract liabilities), metode glede na čas, razporeditev transakcijske cene, rezervacije za vračila, naročnine in spremembe pogodb. Privzeta pot ostaja nespremenjena - običajna postavka računa pripozna prihodke v celoti ob izdaji (v določeni točki v času), kar je skladno s standardoma 606/15 za eno samo obveznost izpolnitve, ki je izpolnjena ob dobavi. Vse spodaj navedeno je na voljo z izbiro (opt-in) za posamezno postavko računa.

Programska oprema je zmožna slediti standardoma 606/15; poročevalska enota pa je tista, ki je (ali ni) skladna. Izbira ustrezne metode za posamezno obveznost, ocenjevanje posamičnih prodajnih cen in stopenj vračil ter presoja, ali so preostalo blago ali storitve ob spremembi ločljivi, ostajajo računovodske presoje, ki jih sprejme zavezanec.

Konti

Tokove podpirajo trije konti v kontnem načrtu, ki so povezani kot ključi pravil knjiženja (preglisljivi za vsako družbo prek ledger/posting-rules/update): revenue.deferredIncome → 4910 "Ateinančių laikotarpių pajamos" (obveznost do kupcev), revenue.refundLiability → 4450 "Grąžinimo įsipareigojimai pirkėjams", revenue.contractAsset → 2910 "Sukauptos pajamos". Obstoječe družbe konte pridobijo s ponovno uporabo predloge kontnega načrta (ledger/accounts/apply-template).

Obveznosti izpolnitve na postavkah računa

Postavke v sales/invoices/create|update sprejemajo parameter recognition: { method, startDate, endDate, milestones }, pri čemer je method lahko eden od naslednjih:

Metoda Vedenje ob izdaji Pripoznavanje
point_in_time (privzeto) V vseh zneskih v dobro prihodkov ob izdaji, nespremenjeno
ratable (startDate..endDate) V dobro časovno razmejenih prihodkov mesečni načrt, utežen glede na dneve v obdobju storitve
milestone (milestones[], odstotki seštevajo do 100) V dobro časovno razmejenih prihodkov en obrok na mejnik, pripoznan ob dogodku
percent_complete V dobro časovno razmejenih prihodkov prek kumulativnih poročil o napredku

Terjatve do kupcev in DDV ostajajo nespremenjeni: izdaja knjiži v breme 2410 za bruto znesek, v dobro 4492 za DDV, neto znesek pa razdeli med prihodke (postavke v določeni točki v času) in 4910 (časovno razmejene postavke). Načrti so shranjeni v osnovni valuti družbe po tečaju na dan izdaje – sales/recognition-schedules/list (sales:read) prikazuje vsak obrok s statusom pending | recognized | cancelled.

Razporeditev transakcijske cene. Pri več kot eni postavki standaloneSellingPrice na vsaki postavki sorazmerno razporedi neto znesek računa med obveznosti (MSRP 15, točke 76–80); razporejeni znesek – in ne navedena cena postavke – narekuje delitev med prihodke in časovne razmejitve ter načrte. DDV ostane povezan s postavkami računa, kot je navedeno.

Mehanizem pripoznavanja

Pripoznavanje knjiži v breme 4910 / v dobro prihodkov (konto storitve/izdelka in stroškovno mesto iz izvirne postavke) kot enotno temeljnico na zagon, zabeleženo v sales/recognition/runs/list.

  • POST /v1/sales/recognition/compute (sales:read) { asOfDate? } – predogled zapadlih časovno sorazmernih obrokov (dry-run).
  • POST /v1/sales/recognition/run (sales:write) { asOfDate?, postingDate?, scheduleIds? } – knjiženje zapadlih časovno sorazmernih obrokov ali natanko tistih obrokov, ki so navedeni v scheduleIds (katerakoli metoda).
  • POST /v1/sales/recognition/progress (sales:write) { invoiceLineId, percentComplete, date? } – postavke glede na stopnjo dokončanosti: poročanje o kumulativnem napredku; novo zasluženi del se knjiži takoj, nazadovanja se zavrnejo.
  • POST /v1/sales/recognition/summary (sales:read) – do zdaj pripoznani zneski, preostanek, število čakajočih in datum naslednje zapadlosti na postavko ter skupni zneski družbe.

Pripoznavanje brez anketiranja sprožajo trije dogodki: zaklenitev obdobja (ledger/periods/lock), ki najprej pripozna vse, kar zapade do konca obdobja, knjiženo na dan konca obdobja; izdaja zapisnika o dobavi (sales/acts/issue), ki pripozna čakajoče obroke na podlagi mejnikov za povezani račun na datum zapisnika; ter časovnik za zapadlost načrta, ki se nastavi na naslednji datum zapadlosti časovno sorazmernega obroka in ga za vsako družbo knjiži ob njegovem nastopu (zaklenjeno obdobje poskusi znova pozneje). Mejniki so namerno dogodkovno naravnani – expectedDate posameznega mejnika je načrtovalni podatek in sam po sebi nikoli ne sproži pripoznavanja.

Spremenljivo nadomestilo – obveznost za vračila

Parametri refundEstimatePercent na postavki knjižijo v dobro ustrezen delež (razporejenega) neta na konto 4450 namesto na prihodke ali časovno razmejene prihodke ob izdaji – pričakovana vračila so izključena iz transakcijske cene (MSRP 15, točka 55). Stanje za posamezni račun je na voljo v sales/refund-liability/list (ocenjeno, porabljeno, ugotovljena dejanska vračila poravnav, preostanek).

Dejanski dogodki: dobropis k računu knjiži v breme 4450 do višine preostale obveznosti, preden se dotakne prihodkov. sales/refund-liability/true-up (sales:write) { invoiceId, estimatedTotal, date? } popravi oceno in knjiži razliko v breme ali v dobro prihodkov (z zgornjo mejo pri porabljenem znesku). Vračila poravnav ponudnikov plačilnih storitev, usklajena z računom, se zabeležijo na obveznosti in sprožijo spletni dogodek refund_liability.actual – se ne knjižijo neposredno v breme 4450, ker zmanjšanje prihodkov in izstopnega DDV zahteva dobropis kot knjigovodsko listino za DDV.

Naročnine – pogodbe za računi

Če pogodbi dodelite billingPeriod (monthly | quarterly | annual), funkcija agreements/generate-invoice (agreements:write) ustvari osnutek računa za naslednje neobračunano obdobje: postavke iz postavk pogodbe (ali value kot eno postavko na obdobje), pri čemer ima vsaka časovno sorazmerno pripoznavanje v obdobju storitve. agreements/billing/run { asOfDate? } preišče vse aktivne pogodbe, ustvari vsako zapadlo obdobje in prekine veljavnost pogodb, ki so v celoti obračunane po preteku datuma njihovega zaključka. Končna kratka obdobja se časovno razsorazredijo po dnevih; autoRenew podaljša trajanje za svojo dolžino in nadaljuje obračunavanje. Ustvarjeni računi nosijo oznako agreementId (filtrerano v sales/invoices/list).

Spremembe pogodb

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

  • prospective – prekliče čakajoči načrt in neprepoznani preostanek ponovno razporedi na nove pogoje od datuma spremembe naprej (preostalo blago ali storitve so ločljivi: MSRP 15, točki 20(a) in 21(a)). Časovno sorazmerne postavke prevzamejo newEndDate; postavke z mejniki prevzamejo newMilestones (odstotki preostalega zneska).
  • cumulative_catch_up (samo za časovno sorazmerne postavke) – ponovno izračuna prihodke, kot da bi veljali novi pogoji od začetka, ter takoj knjiži razliko v katero koli smer (ena sama delno izpolnjena obveznost: točka 21(b)); preostanek se ponovno razporedi.

Znižanja cen se izvedejo prek dobropisov: dobropis k računu s čakajočimi načrti najprej knjiži v breme časovno razmejenih prihodkov in skrajša čakajoči načrt z njegovega skrajnega konca, nato zmanjša obveznost za vračila in šele nato prihodke. Povišanja cen so dodatni računi z lastnim pripoznavanjem – po naravi so prospektivni.

Omejitve

  • Načrti in knjiženja pripoznavanj so v zneskih v osnovni valuti (EUR), določenih po deviznem tečaju na dan izdaje; časovno razmejena stanja se po izdaji ne preračunavajo glede na tečajne razlike.
  • Konto sredstev iz pogodb (2910) je na voljo v kontnem načrtu in kot ključ knjiženja, vendar avtomatiziran tok neobračunanih prihodkov nanj še ne knjiži – predčasno pripoznavanje pred izdajo računa je trenutno ročna temeljnica.
  • Razporeditev zahteva posamično prodajno ceno na vseh postavkah računa ali na nobeni; preostali pristop (točka 79(c)) ni implementiran.
  • Obveznosti za vračila se spremljajo brez DDV na ravni računa; ustrezno sredstvo za pravico do pridobitve vrnjenega blaga (točka B25) ni modelirano.
  • Kumulativni poravnalni popravek (cumulative catch-up) velja za časovno sorazmerne postavke; ponovno načrtovanje mejnikov je izključno prospektivno; postavke glede na stopnjo dokončanosti se prilagajajo prek poročil o napredku in ne prek funkcije modify.
  • Pomembne finančne komponente (točke 60–65), denarne in nedenarne kompenzacije ter nadomestila, ki se plačajo kupcu, so izven obsega.
  • Samodejni zagoni zapadlih načrtov se knjižijo na dan sprožitve; poravnalna knjiženja v zaklenjena obdobja se zavrnejo – odklenite obdobje ali uporabite odprt datum knjiženja.