Hvordan beregner programvareplattformer MVA- og a-meldingsfrister automatisk?
De utleder dem framfor å lagre dem. En frist følger av organisasjonsformen, om selskapet er registrert for plikten, og innsendingsperioden. Det gir en lovbestemt dato, som deretter justeres hvis den lander på en helg eller en norsk helligdag. Hvert tidspunkt uttrykkes i Europe/Oslo, så UTC-forskyvningen som vises flytter seg gjennom året og må aldri hardkodes. Apier returnerer den justerte datoen, den opprinnelige i adjusted_from, og den rettslige henvisningen som et felt.
Hvordan forskyver helger og helligdager en frist?
Den lovbestemte datoen er utgangspunktet, ikke svaret. Når den faller på en lørdag, en søndag eller en norsk helligdag, flytter den virksomme fristen seg, og hvor mye den flytter seg avhenger av hvor mange fridager den må forbi. Den norske helligdagskalenderen inneholder bevegelige høytider, så en dato som var grei ett år kan forskyve seg det neste uten at noen regel er endret. Det er den delen du ikke vil vedlikeholde i applikasjonskode.
Svaret gjør justeringen synlig i stedet for å skjule den. Der endepunktet returnerer en frist som har flyttet seg, returnerer det også adjusted_from med datoen den startet som, og der ingenting flyttet seg, er feltet null. En av oppføringene det nøkkelløse fristendepunktet returnerer i dag viser dette tydelig: skattemeldingen for enkeltpersonforetak for inntektsåret 2025 kommer tilbake med frist 1. juni 2026 og adjusted_from 31. mai 2026, fordi den opprinnelige datoen var en søndag.
Vis begge til brukerne dine når paret finnes. En kunde som har lest regelen og venter slutten av mai, kommer ellers til å tro at produktet ditt tar feil, og å forklare forskyvningen i etterkant er en supporthenvendelse du kan unngå helt ved å vise den med én gang.
Hvilke plikter er ulike for et AS og et ENK?
Nok til at organisasjonsform er det første ethvert fristoppslag trenger. Et aksjeselskap har en årlig regnskapsplikt som et enkeltpersonforetak ikke har, og den årlige skattemeldingen er ulik i skjema og i dato mellom de to. Noen plikter gjelder begge, og det er tilfellet som lurer folk: samme pliktnavn på tvers av to organisasjonsformer garanterer ikke samme frist.
Framfor å kode det inn i din egen forgrening, les det av svaret. Hver fristoppføring bærer applies_to_entity_types, så det å filtrere til formene et selskap faktisk har er en sammenligning mot et felt. Det nøkkelløse endepunktet /api/v1/public/obligations tar en organisasjonsform direkte og returnerer malsettet for den, og det er den raskeste måten å se forskjellen på et AS og et ENK side om side.
Registreringsstatus er det andre inndataet folk glemmer. Et selskap registrert i Merverdiavgiftsregisteret har merverdiavgiftsrapportering; et som ikke er det, har det ikke, og den samme organisasjonen kan bevege seg mellom de tilstandene i løpet av et år. Et pliktsett er derfor en egenskap ved et selskap på et tidspunkt framfor en egenskap ved organisasjonsformen alene, og det er argumentet for å evaluere på nytt etter en plan i stedet for å regne én gang ved innrullering og lagre resultatet.
| Innsending | Periode | Frist som returnert | Hvem det gjelder |
|---|---|---|---|
| A-melding | Én kalendermåned, rapportert måneden etter. | 5. januar 2026 for perioden desember 2025. | Alle organisasjonsformene i settet, der det finnes rapporteringspliktig lønn. |
| MVA-melding | Terminer på to måneder, uttrykt som YYYY-Tn. | 10. april 2026 for 1. termin 2026. | Enheter registrert i Merverdiavgiftsregisteret. |
| Skattemelding (enkeltpersonforetak) | Ett inntektsår. | 1. juni 2026 for inntektsåret 2025, justert fra 31. mai. | ENK. |
| Årsregnskap | Ett regnskapsår. | Utledet av regnskapsåret framfor en fast kalenderdato. | Organisasjonsformer med lovbestemt regnskapsplikt. |
Hvordan henter jeg frister for selskapsskatt hos Skatteetaten programmatisk?
Gjennom den samme fristflaten som alt annet, og det er poenget med å ha én. Det finnes ikke noe eget endepunkt for selskapsskatt å lære: det nøkkelløse kalenderendepunktet tar et valgfritt year og returnerer de løpende oppføringene for det, og endepunktet per selskap tar en from_date og et horizon_months og returnerer vinduet som gjelder én organisasjon. Hver oppføring bærer sin egen rettslige henvisning som et felt, så du kan vise henvisningen uten å vedlikeholde en egen oppslagstabell.
Én advarsel om mellomlagring. Lagre gjerne resultatet, men lagre regelversjonen sammen med det, og behandle en versjonsendring som en grunn til å evaluere på nytt framfor som et felt å overse. En frist som var korrekt under ett regelsett er ikke bevis om det neste, og en foreldet dato vist med selvtillit er verre for en bruker enn en treg en.
En horisont på tolv måneder per selskap, oppdatert hver natt, er som regel riktig form for en kalendervisning. Vil du ha det smalere svaret med detaljene rundt, dekker veiledningen om fristen for selskapets skattemelding den innsendingen for seg, og veiledningen om plikter mot Skatteetaten dekker hva annet som er tilgjengelig uten en delegering.
Gjør det første kallet
Det første kallet trenger ingen nøkkel og returnerer den løpende kalenderen for et år. Det andre snevrer den inn til ett selskap og et vindu du velger. I begge: les adjusted_from før du viser en dato.
# Nøkkelløst: den løpende fristkalenderen for et år.
curl -s "https://www.apier.no/api/v1/public/deadlines?year=2026"// Per selskap, med et vindu framover.
const url = new URL(
"https://www.apier.no/api/v1/company/999999999/deadlines",
);
url.searchParams.set("from_date", "2026-01-01");
url.searchParams.set("horizon_months", "12");
const res = await fetch(url, {
headers: { Authorization: `Bearer ${process.env.APIER_API_KEY}` },
});
const { data } = await res.json();
for (const d of data.deadlines) {
// adjusted_from er null når den lovbestemte datoen alt var en
// virkedag, og den opprinnelige datoen når den ble flyttet.
console.log(d.obligation_name, d.deadline, d.adjusted_from, d.timezone);
}Ofte stilte spørsmål
- Hvordan beregnes norske innsendingsfrister?
- Fra fire inndata: organisasjonsformen, om enheten er registrert for den aktuelle plikten, innsendingsperioden, og kalenderen. Regelsettet gir en lovbestemt dato, og et kalendersteg flytter så den datoen hvis den faller på en helg eller en norsk helligdag. Svaret returnerer både datoen du kan handle på og, i adjusted_from, datoen den startet som.
- Hvorfor endrer tidssoneforskyvningen seg mellom svar?
- Fordi Norge har sommertid. En frist i januar bærer en forskyvning på pluss én time og den samme fristen i juni bærer pluss to, og begge er korrekte uttrykk for samme klokkeslett i Europe/Oslo. Derfor bør en klient aldri hardkode en forskyvning: tolk tidsstempelet med forskyvningen, eller les det uttrykkelige tidssonefeltet, og la et datobibliotek gjøre resten.
- Hva er adjusted_from-feltet til?
- Det forteller at fristen flyttet seg og hva den flyttet seg fra. Når den lovbestemte datoen alt er en virkedag, er adjusted_from null. Når datoen falt på en helg eller en helligdag, bærer adjusted_from den opprinnelige og deadline den forskjøvede. Å vise paret til en bruker forklarer en dato som ellers ville sett feil ut mot deres egen lesning av regelen.
- Er fristene ulike for et AS og et ENK?
- Ja, og forskjellen ligger ikke bare i datoene. Selve pliktene er ulike etter organisasjonsform, og der en plikt gjelder begge, kan fristen og skjemaet likevel avvike. Hver fristoppføring bærer applies_to_entity_types, så det å filtrere på selskapets organisasjonsform er en feltsammenligning framfor noe du må kode inn i din egen logikk.
- Kan jeg hente frister for selskapsskatt programmatisk?
- Ja. De kommer tilbake fra den samme fristflaten som alt annet, med organisasjonsformene de gjelder for og den rettslige henvisningen påheftet som et felt. Dokumentasjonen har en egen gjennomgang av fristen for selskapets skattemelding hvis du vil ha det smalere svaret med konteksten rundt.