← Základy / Sady SDK
Uznávání výnosů (IFRS 15 / ASC 606)
Časové rozlišení výnosů, poměrné harmonogramy, harmonogramy podle milníků a procenta dokončení, závazky z vrácení peněz, předplatné.
Časové rozlišení výnosů na jednotlivých řádcích a plánované uznávání: závazky z pohledávek ze smluv (contract liabilities), metody poměrného plnění v čase, alokace transakční ceny, rezervy na vrácení peněz, předplatné a změny smluv. Výchozí chování zůstává beze změny – běžný řádek faktury nadále uznává výnos v plné výši při vystavení (v okamžiku plnění), což je v souladu s normami ASC 606 / IFRS 15 pro jediné plnění splněné při dodání. Všechny níže uvedené možnosti jsou volitelné pro každý řádek faktury zvlášť.
Software je pro standardy 606/15 plně vybaven; odpovědnost za dodržování předpisů má však vykazující jednotka. Účetní jednotka sama posuzuje a volí správnou metodu pro jednotlivá plnění, odhaduje samostatné prodejní ceny a míru vratek a vyhodnocuje, zda jsou zbývající zboží nebo služby při úpravě smlouvy samostatně rozlišitelné.
Účty
Toky jsou navázány na tři účty hlavní knihy, které slouží jako klíče zaúčtování (lze je upravit pro každou společnost přes ledger/posting-rules/update): revenue.deferredIncome -> 4910 "Ateinančių laikotarpių pajamos" (závazek ze smlouvy), revenue.refundLiability -> 4450 "Grąžinimo įsipareigojimai pirkėjams", revenue.contractAsset -> 2910 "Sukauptos pajamos". Existující společnosti získají tyto účty opětovným použitím šablony účtové osnovy (ledger/accounts/apply-template).
Plnění na řádcích faktury
Řádky v sales/invoices/create|update akceptují parametr recognition: { method, startDate, endDate, milestones }, kde method může nabývat těchto hodnot:
| Metoda | Chování při vystavení | Uznání výnosu |
|---|---|---|
point_in_time (výchozí) |
D/V v plné výši na výnosy | při vystavení, beze změny |
ratable (startDate..endDate) |
D/V na časově rozlišené výnosy | poměrný měsíční harmonogram dle dnů za období poskytování služby |
milestone (milestones[], součet procent je 100) |
D/V na časově rozlišené výnosy | jedna tranše na milník, uznává se při nastalé události |
percent_complete |
D/V na časově rozlišené výnosy | prostřednictvím hlášení o kumulativní postupu prací |
Pohledávky a DPH zůstávají nedotčeny: vystavení zaúčtuje hrubou částku MD 2410, DPH na D 4492 a čistou částku rozdělí mezi výnosy (řádky v okamžiku plnění) a účet 4910 (časově rozlišené řádky). Harmonogramy se ukládají v základní měně společnosti kurzem platným ke dni vystavení – sales/recognition-schedules/list (sales:read) zobrazuje každou tranzi se stavem pending | recognized | cancelled.
Alokace transakční ceny. Při existenci více než jednoho řádku zajišťuje parametr standaloneSellingPrice na každém řádku poměrnou alokaci čisté částky faktury mezi jednotlivá plnění (IFRS 15 §76–80); rozdělení na výnosy / časové rozlišení a harmonogramy se řídí touto alokovanou částkou, nikoli původně zadanou cenou na řádku. DPH zůstává u řádků faktury v původní výši.
Engine pro uznávání výnosů
Uznávání výnosů generuje jeden účetní zápis na dávku s předpisem MD 4910 / D výnosy (účet služeb/produktu a nákladové středisko z původního řádku). Tyto zápisy se evidují v sales/recognition/runs/list.
POST /v1/sales/recognition/compute(sales:read){ asOfDate? }– zkušební náhled (dry-run) na splatné poměrné tranše.POST /v1/sales/recognition/run(sales:write){ asOfDate?, postingDate?, scheduleIds? }– zaúčtování splatných poměrných tranší nebo konkrétních tranší určených pomocíscheduleIds(bez ohledu na metodu).POST /v1/sales/recognition/progress(sales:write){ invoiceLineId, percentComplete, date? }– pro řádky s procentem dokončení: nahlášení kumulativního postupu; nově vydělená část se zaúčtuje okamžitě, snížení postupu (regrese) je zamítnuto.POST /v1/sales/recognition/summary(sales:read) – k datu uznaná částka, zbývající částka, počet čekajících položek a datum příští splatnosti na řádek, včetně celkových souhrnů za společnost.
Uznávání výnosů spouštějí tři události automaticky bez nutnosti dotazování: uzávěrka období (ledger/periods/lock) nejprve rozpozná všechny položky splatné do konce období s datem zaúčtování k datu konce období; vystavení předávacího protokolu (sales/acts/issue) rozpozná k datu protokolu čekající tranše milníků z propojené faktury; a časovač splatnosti harmonogramu se nastaví na příští datum splatnosti poměrné tranše a zaúčtuje ji za společnost v den její splatnosti (uzavřené období se zpracuje později). Milníky jsou záměrně vázány na události – hodnota expectedDate u milníku slouží pro plánování a sama o sobě spuštění uznání nevyvolá.
Proměnlivá protihodnota – závazek z vrácení peněz
Pokud je na řádku uvedeno refundEstimatePercent, zaúčtuje se příslušný podíl z (alokované) čisté částky při vystavení ve prospěch účtu 4450 namísto výnosů nebo časového rozlišení – očekávané vrácení peněz se vylučuje z transakční ceny (IFRS 15 §55). Stav pro jednotlivé faktury je k dispozici v sales/refund-liability/list (odhadnuto, čerpáno, zaznamenané vrácení při vypořádání, zůstatek).
Skutečné transakce: dobropis k faktuře sníží závazek na účtu 4450 (MD), a to až do výše zbývajícího závazku, teprve poté se sahá na výnosy. Funkce sales/refund-liability/true-up (sales:write) { invoiceId, estimatedTotal, date? } provede korekci odhadu a zaúčtuje rozdíl proti výnosům kterýmkoliv směrem (s dolní hranicí ve výši již vyčerpané částky). Vratky při vypořádání přes platební bránu (PSP) spárované s fakturou se zaznamenávají k závazku a generují webhook refund_liability.actual – účet 4450 se jimi nezatěžuje přímo, protože snížení výnosů a výstupu DPH vyžaduje dobropis jako daňový doklad.
Předplatné – smlouvy a faktury
Přiřaďte smlouvě platební období billingPeriod (monthly | quarterly | annual) a volba agreements/generate-invoice (agreements:write) vytvoří návrh faktury pro další nevyfakturované období: řádky vycházejí z položek smlouvy (nebo z hodnoty value jako jeden řádek na období), přičemž každý řádek má nastaveno poměrné časové rozlišení na dobu trvání služby. Volba agreements/billing/run { asOfDate? } projde všechny aktivní smlouvy, vygeneruje faktury pro všechna splatná období a ukončí platnost smluv, které byly zcela vyfakturovány po datu jejich konce. Poslední krátká období se poměrně krácou na dny; parametr autoRenew prodlouží platnost o stejnou délku a pokračuje ve fakturaci. Vygenerované faktury obsahují agreementId (lze filtrovat v sales/invoices/list).
Změny smluv
POST /v1/sales/recognition/modify (sales:write) { invoiceLineId, approach, date?, newEndDate?, newMilestones? }:
prospective(výhledově) – zruší zbývající harmonogram a přepočítá dosud neuznanou část na nové podmínky od data změny (zbývající zboží nebo služby jsou samostatně rozlišitelné: IFRS 15 §20(a), §21(a)). U poměrných řádků se zadávánewEndDate; u řádků s milníky se zadávajínewMilestones(procenta ze zbývající částky).cumulative_catch_up(kumulativní vyrovnání, pouze pro poměrné řádky) – přepočítá výnosy tak,, jako by nové podmínky platily od začátku, a rozdíl okamžitě zaúčtuje kterýmkoliv směrem (jediné částečně splněné plnění: §21(b)); zbytek se rozvrhne nově.
Snížení ceny se projeví prostřednictvím dobropisů: dobropis k faktuře s čekajícími harmonogramy nejprve zaúčtuje na vrub časově rozlišených výnosů a zkrátí čekající plán od jeho konce, poté upraví závazek z vratek a teprve nakonec výnosy. Zvýšení ceny se řeší vystavením nových faktur s vlastním režimem uznávání – ze své podstaty se jedná o výhledový přístup.
Omezení
- Harmonogramy a zápisy uznaných výnosů jsou v částkách v základní měně (EUR) fixovaných kurzem ke dni vystavení; zůstatky časového rozlišení se po vystavení kurzově nepřecenňují.
- Účet pohledávek ze smluv (2910) je sice k dispozici v osnově a jako účetní klíč, ale automatický tok pro nevyfakturované výnosy do něj zatím nezapisuje – uznání výnosů před fakturací se provádí ručním interním dokladem.
- Alokace vyžaduje samostatnou prodejní cenu na všech řádcích faktury, nebo na žádném; zbytková metoda (residual approach, §79(c)) není implementována.
- Závazky z vrácení peněz se sledují bez DPH na úrovni faktury; odpovídající aktiva z práva na vrácení zboží (§B25) nejsou modelována.
- Kumulativní vyrovnání se uplatňuje u poměrných řádků; úprava plánu milníků probíhá pouze výhledově; řádky s procentem dokončení se upravují přes hlášení o postupu prací, nikoli pomocí
modify. - Významné finanční složky (§60–65), nepeněžní protihodnoty a protihodnoty splatné zákazníkovi jsou mimo rozsah tohoto řešení.
- Automatické dávky pro uznání výnosů se spouštějí v den splatnosti; dodatečné zaúčtování do uzavřených období je zamítnuto – období odemkněte nebo použijte otevřené datum zaúčtování.