← Grunnleggende / SDK-er
Inntektsføring (IFRS 15 / ASC 606)
Periodisert inntekt, lineære, milepæl- og fullføringsgradbaserte tidsplaner, returforpliktelser, abonnementer.
Linjevis inntektsutsettelse og tidsplanfestet inntektsføring: kontraktsforpliktelser, over tid-metoder, allokering av transaksjonspris, avsetninger for returer, abonnementer og kontraktsendringer. Standardflyten er uendret - en vanlig fakturalinje inntektsføres fremdeles i sin helhet ved utstedelse (på et gitt tidspunkt), noe som er i tråd med 606/15 for en enkelt ytelsesforpliktelse som oppfylles ved levering. Alt nedenfor er valgfritt per fakturalinje.
Programvaren har støtte for 606/15; det er den rapporterende enheten som er (eller ikke er) etterlevelsesdyktig. Å velge riktig metode per forpliktelse, estimere uavhengige salgspriser og returandeler, samt vurdere om gjenværende varer eller tjenester er særskilte ved en endring, forblir regnskapsmessige skjønn som den rapporterende enheten må utøve.
Konti
Tre regnskapskonti ligger til grunn for flytene, knyttet sammen som konteringsnøkler (kan overstyres per selskap via ledger/posting-rules/update): revenue.deferredIncome → 4910 "Ateinančių laikotarpių pajamos" (kontraksforpliktelse), revenue.refundLiability → 4450 "Grąžinimo įsipareigojimai pirkėjams", revenue.contractAsset → 2910 "Sukauptos pajamos". Eksisterende selskaper får kontoene ved å gjenbruke kontoplanmalen (ledger/accounts/apply-template).
Ytelsesforpliktelser på fakturalinjer
Linjer i sales/invoices/create|update aksepterer recognition: { method, startDate, endDate, milestones }, der method er en av følgende:
| Metode | Atferd ved utstedelse | Inntektsføring |
|---|---|---|
point_in_time (standard) |
Krediter inntekt i sin helhet | ved utstedelse, uendret |
ratable (startDate..endDate) |
Krediter opptjent ikke-fakturert inntekt (deferred income) | dagsvekstet månedlig tidsplan over tjenesteperioden |
milestone (milestones[], prosenter som summerer til 100) |
Krediter opptjent ikke-fakturert inntekt (deferred income) | én tranche per milepæl, inntektsført ved hendelsen |
percent_complete |
Krediter opptjent ikke-fakturert inntekt (deferred income) | via kumulative fremdriftsrapporter |
Kundefordringer og mva. berøres ikke: utstedelse bokfører debet 2410 for bruttobeløpet, kredit 4492 for mva., og fordeler nettobeløpet mellom inntekt (tidspunktbaserte linjer) og 4910 (periodiserte linjer). Tidsplaner lagres i selskapets funksjonelle valuta til valutakursen på utstedelsestidspunktet - sales/recognition-schedules/list (sales:read) viser hver tranche med status pending | recognized | cancelled.
Allokering av transaksjonspris. Med mer enn én linje vil standaloneSellingPrice på hver linje fordele fakturabeløpet (netto) på tvers av forpliktelsene proporsjonalt (IFRS 15 §76–80). Det allokerte beløpet - ikke den oppgitte linjeprisen - styrer fordelingen mellom inntekt og periodisering samt tidsplanene. Mva. forblir knyttet til fakturalinjene som oppgitt.
Inntektsføringsmotor
Inntektsføringen bokfører debet 4910 / kredit inntekt (tjeneste-/produktkonto og kostnadssted fra den opprinnelige linjen) som ett enkelt bilag per kjøring, registrert i sales/recognition/runs/list.
POST /v1/sales/recognition/compute(sales:read){ asOfDate? }- tørrkjøringsforhåndsvisning (dry-run) av forfalte periodiserte trancher.POST /v1/sales/recognition/run(sales:write){ asOfDate?, postingDate?, scheduleIds? }- bokfør forfalte periodiserte trancher, eller nøyaktig de tranchene som er angitt medscheduleIds(uavhengig av metode).POST /v1/sales/recognition/progress(sales:write){ invoiceLineId, percentComplete, date? }- linjer basert på fullføringsgrad: rapporter kumulativ fremdrift; den nylig opptjente deltaen bokføres umiddelbart, og reduksjoner avvises.POST /v1/sales/recognition/summary(sales:read) - hittil inntektsført, gjenstående, antall ventende og neste forfallsdato per linje, i tillegg til selskapets totaler.
Tre hendelser styrer inntektsføringen uten polling: periode-låsing (ledger/periods/lock) inntektsfører først alt som har forfall til og med periodens utløp, bokført på datoen for periodens utløp; leveringsattest-utstedelse (sales/acts/issue) inntektsfører den tilhørende fakturaens ventende milepæltrancher på attestdatoen; og en tidsplan-forfallsutløser aktiveres for neste periodiserte forfallsdato og bokfører per selskap når den inntreffer (en låst periode vil forsøke på nytt senere). Milepæler er hendelsesbaserte med vilje - en milepæls expectedDate er planleggingsinformasjon og utløser aldri inntektsføring i seg selv.
Variabel vederlagskomponent - returforpliktelse
refundEstimatePercent på en linje krediterer den andelen av nettoprisen (allokert) til 4450 i stedet for inntekt eller opptjent ikke-fakturert inntekt ved utstedelse - forventede returer utelates fra transaksjonsprisen (IFRS 15 §55). Status per faktura finnes i sales/refund-liability/list (estimert, forbrukt, faktiske observerte oppgjørsreturer, gjenstående).
Faktiske beløp: en kreditnota mot fakturaen debiterer 4450 opp til den gjenstående forpliktelsen før inntekten berøres. sales/refund-liability/true-up (sales:write) { invoiceId, estimatedTotal, date? } reviderer estimatet og bokfører deltaet mot inntekt i begge retninger (med det forbrukte beløpet som gulv). Betalingstjenestetilbyderens (PSP) oppgjørsreturer som matches mot fakturaen, registreres på forpliktelsen og utløser en refund_liability.actual-webhook - de bokføres ikke direkte mot 4450, fordi det å frigi inntekt og utgående mva. krever kreditnotaen som mva-dokument.
Abonnementer - avtaler til fakturaer
Gi en avtale en billingPeriod (monthly | quarterly | annual) og agreements/generate-invoice (agreements:write) oppretter neste ufakturerte periods utkast til faktura: linjer fra avtalelinjene (eller value som én linje per periode), hver med lineær inntektsføring over tjenesteperioden. agreements/billing/run { asOfDate? } sirkulerer gjennom alle aktive avtaler, genererer hver forfalt periode, og utløper avtaler som er fullfakturert forbi sluttdatoen. Korte sluttdatoer prorateres etter antall dager; autoRenew forlenger perioden med sin egen lengde og fortsetter faktureringen. Genererte fakturaer har med seg agreementId (kan filtreres i sales/invoices/list).
Kontraktsendringer
POST /v1/sales/recognition/modify (sales:write) { invoiceLineId, approach, date?, newEndDate?, newMilestones? }:
prospective- kanseller den ventende tidsplanen og fordel det ikke-inntektsførte restbeløpet over de nye vilkårene fra endringsdatoen (gjenværende varer/tjenester er særskilte: IFRS 15 §20(a), §21(a)). Lineære linjer brukernewEndDate; milepællinjer brukernewMilestones(prosenter av det gjenstående beløpet).cumulative_catch_up(kun lineære) - beregn inntekten på nytt som om de nye vilkårene gjaldt fra starten, og bokfør differansen umiddelbart i en av retningene (en enkelt delvis oppfylt forpliktelse: §21(b)); restbeløpet fordeles på nytt.
Prisnedgang håndteres via kreditnotaer: en kreditnota mot en faktura med ventende tidsplaner debiterer opptjent ikke-fakturert inntekt først og kutter den ventende tidsplanen fra slutten, deretter returforpliktelsen, og først deretter inntekten. Prisøkninger er nye fakturaer med egne inntektsføringer - framadskuende (prospective) i kraft av sin konstruksjon.
Begrensninger
- Tidsplaner og inntektsføringsbilag er beløp i funksjonell valuta (EUR) fastsatt til valutakursen på utstedelsestidspunktet; utsatte saldi omregnes ikke på nytt for valutakursendringer etter utstedelse.
- Kontoen for kontraktsmidler (contract-asset) (2910) leveres i kontoplanen og som konteringsnøkkel, men ingen automatisert flyt for ufakturert inntekt bokføres mot den ennå - inntektsføring før fakturering gjøres manuelt via bilag foreløpig.
- Allokering krever en uavhengig salgspris på alle linjer på fakturaen eller ingen; restmetoden (residual approach, §79(c)) er ikke implementert.
- Returforpliktelser spores eksklusive mva. på fakturanivå; den tilhørende eiendelen for retten til å motta returnerte varer (§B25) er ikke modellert.
- Kumulativ innhenting (cumulative catch-up) gjelder for lineære linjer; omplanlegging av milepæler er kun framadskuende; linjer med fullføringsgrad justeres via fremdriftsrapporter, ikke
modify. - Betydelige finansieringskomponenter (§60–65), ikke-kontant vederlag og vederlag som skal utbetales til en kunde, er utenfor omfanget.
- Automatiske tidsplanforfalls-kjøringer bokføres på den dagen de utløses; innhentingsposteringer (catch-up) i låste perioder avvises - lås opp perioden eller bruk en åpen bokføringsdato.