Nordlet

← Emuārs

Valstu līmeņa PVN atskaišu un VIES validācijas automatizācija

Praktisks ceļvedis izstrādātājiem, kuri integrē ES PVN atbilstību tirgos un platformās, izmantojot mākoņgrāmatvedības API.

Nordlet Team · · 11 min. lasīts

Lielākā daļa PVN kļūdu platformas kodā sakņojas vienā pieņēmumā: ka derīgs VIES rezultāts nozīmē tiesības piemērot 0% PVN likmi. Tā tas nav, un, balstoties uz šo īsceļu, tiek radītas atskaites, kas šķiet nevainojamas, līdz auditors jautā, kāpēc ES iekšienē piemērots atbrīvojums bez transportēšanas pierādījumiem vai konsekventa preču/pakalpojumu saņemšanas vietas ieraksta. Atstarpe starp "PVN numurs ir kārtībā" un "šim darījumam nodoklis piemērots pareizi" ir vieta, kur lielākā daļa integrāciju nemanāmi kļūdās.

Šajā ceļvedī ir apskatīts, kā automatizēt valstu līmeņa PVN atskaišu sagatavošanu un VIES validāciju, izmantojot mākoņgrāmatvedības API un Nordlet grāmatvedības API kā ieviešanas piemēru. Mērķis ir izveidot sistēmu, kas fiksē pareizos pierādījumus pārdošanas brīdī, ieraksta nemainīgus virsgrāmatas datus un sagatavo atskaitēm gatavus datus, kas grupēti pa shēmām un dalībvalstīm, vēlāk neremontējot kopsummas izklājlapās.

Ko VIES patiesībā pasaka un ko nē

VIES ir ES PVN informācijas apmaiņas sistēma. Ievadot valsts kodu un PVN numuru, tā reāllaikā vaicā attiecīgo valsts datubāzi un atgriež informāciju par to, vai šis PVN numurs ir derīgs vai nederīgs. Tas ir viss tās darbības apjoms. Tā apstiprina, ka numurs ir reģistrēts un, ja dalībvalsts to atbalsta, aktivizēts darījumiem ES iekšienē.

Tā nenosaka tiesības piemērot atbrīvojumu kopienas iekšienē veiktām piegādēm. Eiropas Komisija par to izsakās nepārprotami. Derīga VIES atbilde ir tikai viens no vairākiem pierādījumiem. Jums joprojām ir jāpārliecinās, ka pircējs ir faktiskais saņemšanas puse, ka darījums kvalificējas kā ES iekšējais darījums, ka pastāv transportēšanas vai nosūtīšanas pierādījumi un ka rēķinā ir ietverts prasītais teksts par nodokļa samaksu otrā puse (reverse-charge).

Tāpēc pirmais arhitektūras lēmums ir strukturāls: glabājiet VIES statusu un PVN piemērošanas veidu (treatment) atsevišķos laukos. Nekad nesasaistiet viesStatus: valid tieši ar zeroRated: true. Tiklīdz jūs šos divus jēdzienus apvienojat, jūs zaudējat spēju pamatot piemēroto nodokļa režīmu brīdī, kad tiek apšaubīti pierādījumi.

Priekšnosacījumi pirms integrācijas koda rakstīšanas

Pirms tiek izsaukts jebkurš API gals (endpoint), definējiet ziņošanas apjomu. Šī daļa ir garlaicīga, un tās izlaišana izmaksā dārgi.

  • Valstis, kurās uzņēmumam ir reģistrācija vai pastāvīgā iestāde
  • Valstis, kurās tam ir PVN reģistrācija
  • Vai uzņēmums tirgo preces, pakalpojumus, digitālos pakalpojumus vai to kombināciju
  • Vai darījumi ir starp uzņēmumiem (B2B), starp uzņēmumu un patērētāju (B2C) vai abi kopā
  • Vai tiek izmantota vietējā reģistrācija, OSS, IOSS, apgrieztā PVN maksāšana vai tirgus vietu (marketplace) uzskatāmā piegādātāja (deemed-supplier) noteikumi
  • Kādus datus API ir jāizgenerē: vietējo atskaišu datus, OSS/IOSS datus, rēķinu reģistrus (piemēram, Lietuvas i.SAF), tikai virsgrāmatas ierakstus vai datu kopas citam nodokļu deklarēšanas nodrošinātājam

Tas ir svarīgi, jo OSS neaptver pilnīgi visus darījumus. Pakalpojumi, kas sniegti valstī, kur uzņēmumam ir pastāvīgā iestāde, parasti ir jāiekļauj attiecīgās valsts vietējā nodokļu deklarācijā, nevis OSS deklarācijā. Jau pašā sākumā modelējiet pastāvīgās iestādes atsevišķi, pretējā gadījumā datu apkopošanas brīdī šie darījumi tiks novirzīti nepareizi.

Tāpat neiekļaujiet kodā vienu cieti noteiktu PVN likmi katrai valstij. ES pastāv standarta, samazinātās, īpaši samazinātās, stāvvietu (parking), noraidītās (zero-rated) un specifiskām precēm paredzētās likmes, turklāt tās mainās. Uzticams avots konkrētai precei konkrētajā dalībvalstī ir attiecīgās valsts nodokļu iestāde, savukārt EK uzturētais TEDB piedāvā pārskatu starp valstīm. Reģistrējiet avotu un versiju aiz katra likmes lēmuma, lai vēlāka likmju tabulas atjaunināšana nemanāmi nepārrakstītu to, kā izskatās vecs darījums.

Nodokļa lēmuma, nevis tikai likmes modelēšana

Noturīgas integrācijas pamatā ir nodokļu kategoriju slānis, kas atrodas starp produktiem un likmēm. Kartējiet produktus uz kategorijām, kategorijas uz valstij specifiskiem nodokļu kodiem un pēc tam uz likmēm ar spēkā esamības datumu:

product/service
    → tax category
    → country-specific tax code
    → effective-dated rate and treatment

Nedrošā pieeja, kas rada atskaišu sagrozīšanu, ir product SKU → 21% VAT. Vienam un tam pašam produktam dažādās valstīs ir dažādas likmes, turklāt likme var mainīties perioda vidū. Paša Nordlet norādījumi par PVN atbilstību iesaka tieši šādu uz kategorijām balstītu kartēšanu, nevis produktu piesaistīšanu tieši procentiem.

Jūsu nodokļu kategoriju taksonomijai ir jābūt stabilai un iekšējai: standarta likmes preces, samazinātas likmes preces, elektroniski sniegtie pakalpojumi, parastie pakalpojumi, ar nodokli apliekami darījumi ar 0% likmi, ES iekšējie B2B apgrieztā PVN darījumi, ES iekšējie distances tirdzniecības darījumi, IOSS imports, uzskatāmā piegādātāja darījumi. Viss, kas atrodas tālāk sistēmā, balstās uz šo taksonomiju.

VIES validācija kā asinhrona pierādījumu darba plūsma

Oficiālais VIES pakalpojums nodrošina SOAP/WSDL saskarni, kas pieņem divu burtu valsts kodu un PVN numuru. Tā dokumentētās problēmas ir svarīgas jūsu kļūdu apstrādei: nederīga ievade, globālie un dalībvalstu vienlaicīgo pieprasījumu limiti, pakalpojuma nepieejamība, dalībvalsts nepieejamība un taimauti. Uztveriet tos kā atšķirīgus rezultātus, nevis kā vienu "kļūdas" maisu.

Darba plūsma, kas iztur slodzi un auditu, izskatās šādi:

  1. Normalizējiet PVN ID: pārvērtiet prefiksu lielajos burtos, noņemiet atļautās atstarpes vai pieturzīmes un saglabājiet sākotnēji lietotāja ievadīto vērtību atsevišķi.
  2. Lokāli pārbaudiet valsts kodu un numura formātu, pirms veicat tīkla izsaukumu.
  3. Iesniedziet normalizēto numuru VIES.
  4. Saglabājiet normalizēto ID, pieprasījuma un atbildes laika zīmogus, stāvokli (derīgs/nederīgs/nav apstrādāts), neapstrādāto atbildi, jebkādas pakalpojuma kļūdas, klienta un rēķina ID, kā arī lietotnes lēmumu.
  5. Saglabājiet veiksmīgos rezultātus kešatmiņā uz noteiktu, dokumentētu laiku.
  6. Mēģiniet atkārtot īslaicīgas tehniskas kļūdas, izmantojot pakāpenisku pauzes palielināšanu (backoff).
  7. Novirziet neatrisinātus vai pretrunīgus gadījumus manuālai pārbaudei.
  8. Veiciet atkārtotu validāciju, ja kešatmiņas rezultāts ir novecojis vai pirms darījuma, kuram pierādījums ir kritiski svarīgs.

Nordlet pārbauda ES PVN numuru, kad klients tiek pievienots, un veic atkārtotu pārbaudi pirms rēķina izrakstīšanas, ja iepriekšējais rezultāts ir novecojis. Tā ir uzvedība, kuru vēlaties atkārtot neatkarīgi no tā, vai pārbaude notiek platformā vai jūsu pašu kodā.

Kritiskais noteikums: nepadariet norēķinu procesu (checkout) sinhronu ar VIES. Pakalpojuma pārtraukums nenozīmē nederīgu numuru. Ja VIES pārsniedz laika limitu pārdošanas laikā, saglabājiet darījumu pārbaudei vai piešķiriet tam pagaidu statusu. Pirkuma bloķēšana Komisijas pakalpojuma darbības dēļ rada klientu atbalsta biļetes, turklāt laba klienta kļūdaina atzīšana par nederīgu ir vēl ļaunāka.

Validācijas statusa atdalīšana no nodokļa režīma

Kad VIES rezultāts ir saņemts, lēmumu dzinējam ir jāveic vēl citi uzdevumi. Saglabājiet tos kā atsevišķus laukus:

{
  "viesStatus": "valid",
  "vatTreatment": "intra_eu_b2b_reverse_charge",
  "evidenceStatus": "reviewed",
  "placeOfSupply": "DE"
}

Pirms apgrieztā PVN maksāšanas vai atbrīvojuma piemērošanas dzinējam ir jāpārbauda, vai pircējs patiešām ir saņēmējs, vai pircēja valsts un PVN prefikss sakrīt, vai darījums kvalificējas kā ES iekšējais darījums, vai tiek piemēroti īpaši piegādes vietas noteikumi, vai pastāv transportēšanas pierādījumi, vai pārdevējs darbojas kā uzskatāmais piegādātājs un vai rēķinā ir iekļauts nepieciešamais teksts. Derīgs VIES statuss, kas neiztur nevienu citu pārbaudi, nav zaļā gaisma.

Nemainīga PVN lēmuma izveide rēķina izrakstīšanas brīdī

Rēķina izrakstīšanas brīdī saglabājiet pilnu lēmumu tam blakus, nevis tikai galīgo likmi:

invoice
  ├─ line tax category
  ├─ place of supply
  ├─ VAT scheme
  ├─ country-specific rate
  ├─ rate-table version
  ├─ VIES evidence reference
  ├─ location-evidence references
  ├─ legal-basis reference
  └─ marketplace-role flags

ES rēķinu izrakstīšanas noteikumi pieprasa norādīt piegādātāja un pircēja datus, rēķina numuru, aprakstu, ar nodokli apliekamo summu, PVN likmi, PVN summu un jebkādu informāciju par apgriezto PVN vai atbrīvojumu. Kredītrēķiniem un labojumiem ir nepieciešama nepārprotama atsauce uz sākotnējo rēķinu.

Nordlet virsgrāmata ir nemainīga (immutable), tāpēc labojumi tiek veikti, izmantojot jaunus ierakstus, piemēram, kredītrēķinus vai stornējošos ierakstus, nevis labojot slēgtos ierakstus. Veidojiet savu sistēmu ap šo modeli pat tad, ja jūsu krātuve tehniski ļautu veikt pārrakstīšanu. Slēgta rēķina labošana iznīcina saiti starp sākotnējo deklarāciju un labojumu, kas ir tieši tā ķēde, ko pārbauda auditors.

Ierakstīšana, tīmekļa āķi (webhooks) un idepotence

Pārdošanas darījums rada grāmatvedības ierakstus pēc divkāršā ieraksta principa, kas saglabā gan komercdarījumu, gan PVN saistības, kas sadalītas pa valstīm un shēmām. Vietējā pārdošana var radīt šādus ierakstus:

Dr Accounts receivable / payment clearing
    Cr Revenue
    Cr VAT payable - DE - domestic

ES iekšējā B2B darījumā ar apgriezto PVN tiek iegrāmatoti ieņēmumi bez izejošā PVN un ar atsauci uz apgrieztā PVN pierādījumiem. Precīzs kontu plāns ir jūsu ziņā; svarīgi ir tas, lai pārskatu sniegšanas dimensijas būtu piesaistītas katram grāmatojumam: dalībvalsts, shēma, nodokļu kategorija, likme, periods, avota rēķins un labojumu vēsture.

Darbību izmaiņas ierosiniet, izmantojot tīmekļa āķus, nevis periodisku aptaujāšanu (polling). Nordlet izsniedz tādus notikumus kā sale_invoice.paid, paraksta piegādes un atkārtoti mēģina nosūtīt ar pakāpenisku pauzi. Piešķiriet katrai rakstīšanas darbībai deterministisku idepotences atslēgu:

sale:{platform_order_id}:invoice:{invoice_version}

Arī jūsu patērētājkodam ir jābūt idepotentam. Tīmekļa āķis var pienākt divas reizes, kavēties vai nostrādāt pēc tam, kad sākotnējais pieprasījums jau ir izdevies. Pārbaudiet parakstus, reģistrējiet notikumu ID, izolējiet nepareizi formatētus notikumus, apstrādājiet datus, izmantojot izturīgu rindu, un saskaņojiet tīmekļa āķa stāvokli ar API pēc grafika. Ja iepriekš neesat strādājis ar parakstītiem tīmekļa āķiem un idepotences atslēgām, šeit mīt vissmalkākās dubulto ierakstu kļūdas.

Grupēšana OSS vajadzībām un atskaitēm gatavu eksportu sagatavošana

Atbilstošiem OSS darījumiem grupējiet virsgrāmatas datus pēc shēmas, patēriņa dalībvalsts, piegādes veida, likmes kategorijas, likmes, ar nodokli apliekamās summas, PVN summas, nosūtīšanas vai reģistrācijas dalībvalsts, valūtas un labojumu perioda.

Savienības režīma deklarācija atdala piegādes pa patēriņa dalībvalstīm un nošķir pakalpojumus no identifikācijas dalībvalsts, pakalpojumus no citām pastāvīgajām iestādēm un preces, kas nosūtītas no dažādām dalībvalstīm. Tā uzrāda ar nodokli apliekamās un PVN summas atsevišķi standarta un samazinātajām likmēm. Ar nodokli neapliekami un ar 0% likmi apliekami darījumi vispār netiek iekļauti OSS deklarācijā.

Dažas operatīvas detaļas, kas mēdz sagādāt pārsteigumus:

  • Savienības un ārpussavienības OSS periodi ir ceturkšņa; IOSS ir mēneša. Deklarācijas un maksājums ir jāveic līdz nākamā mēneša beigām.
  • Nulles deklarācija ir jāiesniedz par katru periodu pat tad, ja attiecīgie darījumi nav veikti. Izveidojiet perioda kontrolsarakstu un automātiski izveidojiet nulles vērtības deklarāciju.
  • OSS deklarācijas tiek sagatavotas eiro, izmantojot ECB references kursu nodokļu perioda pēdējā dienā, ja nepieciešama konvertācija. Saglabājiet avota valūtu, valūtas maiņas kursu, kursa datumu, konvertēto summu un metodi.

Eksportam ir jānāk no slēgtās virsgrāmatas, nekad no blakus izklājlapas. Izklājlapu kopsummas zaudē labojumus, nosūtīšanas valstis, likmes un pierādījumus. Eksports satur deklarācijas periodu, shēmu, patēriņa dalībvalsti, nosūtīšanas valsti, piegādes kategoriju, likmi, ar nodokli apliekamās un PVN summas, valūtu un piemēroto valūtas maiņas kursu, kārtējā un iepriekšējā perioda labojumu summas, avota rēķinu ID, kredītrēķinu atsauces un saskaņošanas kopsummas.

Esiet precīzi attiecībā uz to, ko API šeit nodrošina. Nordlet aprēķina OSS un IOSS deklarācijas no rēķiniem un virsgrāmatas, iekļaujot iepriekšējo periodu labojumus, sagatavo vietējo atskaišu pakas Lietuvai (FR0600), Vācijai (UStVA) un Polijai (JPK_V7M), kā arī ģenerē VMI gatavus i.SAF reģistrus Lietuvai. Tā ir atskaitēm gatava datu kope. Viens API izsaukums neiesniedz katras valsts PVN deklarāciju caur katras valsts vārteju, un neviena deklarācija netiek iesniegta nodokļu iestādei jūsu vietā. Saglabājiet grāmatvedību, deklarāciju ģenerēšanu, eksportu, vārtejas iesniegšanu un maksājumu apstiprinājumu kā atsevišķus statusus savā sistēmā. ES PVN dzinēja ceļvedis dokumentē, kurus gadījumus dzinējs atrisina un kur nostrādā tā brīdinājumi.

Perioda slēgšana

Pēc pārskatīšanas un apstiprināšanas saskaņojiet rēķinus ar virsgrāmatas ierakstiem, saskaņojiet virsgrāmatas PVN atlikumus ar deklarācijas datu kopu, eksportējiet deklarāciju, reģistrējiet iesniegšanas un maksājumu atsauces, pēc tam slēdziet periodu. Nordlet bloķē grāmatojumus slēgtam mēnesim, tostarp caur API. Labojumi pēc slēgšanas tiek iekļauti vēlākā periodā ar nepārprotamām saitēm uz sākotnējo dokumentu un ietekmēto deklarācijas periodu.

Bieži sastopamie kļūdu scenāriji un kā no tiem izvairīties

Kļūdas scenārijs Kāpēc tas notiek Novēršana
Derīga VIES rezultāta uztveršana par pietiekamu 0% likmes piemērošanai VIES nenosaka atbrīvojuma tiesības Saglabājiet klienta, piegādes, transporta un rēķina pierādījumus blakus rezultātam
Nederīga rezultāta uztveršana par pierādījumu tam, ka reģistrācijas nav Numurs var nebūt aktivizēts darījumiem ES iekšienē, vai datubāze var kavēties Nošķiriet nederīgu, neapstrādātu un tehnisku kļūdu; novirziet strīdus pārbaudei
Norēķinu procesa padarīšana par sinhronu ar VIES Vienlaicīgo pieprasījumu limiti, taimauti, pārtraukumi Asinhrona validācija, īslaicīga kešatmiņa, pakāpeniska pauze, pagaidu stāvokļi
Rezultātu saglabāšana kešatmiņā uz mūžu Reģistrācijas un aktivizācijas statuss mainās Saglabājiet laika zīmogus un derīguma termiņu; veiciet atkārtotu pārbaudi pirms rēķina izrakstīšanas, ja tas ir novecojis
Produktu kartēšana tieši uz PVN procentiem Likmes un atbrīvojumi ir atkarīgi no valsts un datuma Produkts uz kategoriju, uz valsts kodu, uz likmi ar spēkā esamības datumu
OSS rekonstruēšana no izklājlapām Kopsummas neietver labojumus, nosūtīšanas valstis, pierādījumus Izrietiet datus no nemainīgās virsgrāmatas ar dimensijām katrā ierakstā
Vietējās iestādes pakalpojumu iekļaušana OSS Noteikti pakalpojumi pieder vietējai deklarācijai Modelējiet pastāvīgās iestādes atsevišķi, maršrutējiet pēc shēmas pirms apkopošanas
Nulles deklarāciju neiekļaušana OSS pieprasa deklarāciju katrā periodā Izveidojiet kontrolsarakstu un automātiski izveidojiet nulles vērtības deklarācijas
Slēgtu rēķinu labošana, tos rediģējot Iznīcina saiti starp deklarāciju un labojumu Izmantojiet kredītrēķinus un stornējošos ierakstus vēlākā periodā

Ar ko mēs sāktu vispirms

Ja mēs šo integrāciju sāktu rīt, mēs vispirms uzbūvētu nodokļu kategoriju slāni un PVN lēmuma ierakstu, pirms pieskartos kaut vienam atskaišu API galam. Padariet taksonomiju stabilu, sakārtojiet produktu kartēšanu uz kategorijām un nodrošiniet, ka lēmuma ieraksts fiksē neapstrādātus valsts signālus, kā arī iemeslu, kāpēc tika izvēlēta piegādes vieta. Viss pārējais - VIES, grāmatošana, OSS grupēšana, eksports - ir atkarīgs no tā, vai šis modelis ir pareizs.

Tad mēs savienotu VIES kā asinhronu pierādījumu soli ar četriem atdalītiem stāvokļiem un palaistu to pret smilšu kastes uzņēmumu, izmantojot testa datus sarežģītiem gadījumiem (taimauti, neapstrādāti rezultāti, neatbilstoši prefiksi), pirms ļaut tam tuvoties ražošanas videi. Iepriekš minētos kļūdu scenārijus ir gandrīz pilnībā iespējams novērst, ja datu modelis pārnēsā pierādījumus un atskaišu dimensijas jau no pirmā grāmatojuma.

FAQ

Vai derīga VIES atbilde nozīmē, ka varu piemērot 0% likmi ES iekšējam B2B darījumam?

Nē. VIES apstiprina, ka PVN numurs ir reģistrēts un, ja tas tiek atbalstīts, aktivizēts darījumiem ES iekšienē. Tiesības piemērot atbrīvojumu kopienas iekšienē veiktām piegādēm ir atkarīgas no papildu pierādījumiem: tam, ka klients ir faktiskais saņēmējs, transportēšanas vai nosūtīšanas pierādījumiem, pareizas piegādes vietas un rēķinā prasītā formulējuma. Saglabājiet VIES rezultātu kā vienu no ievades datiem, nevis kā pašu lēmumu.

Vai VIES validācijai vajadzētu bloķēt norēķinu procesu?

Nē, nevajadzētu. VIES var pārsniegt laika limitu vai sasniegt vienlaicīgo pieprasījumu limitus, un pakalpojuma pārtraukums nav tas pats, kas nederīgs numurs. Veiciet validāciju asinhroni, saglabājiet veiksmīgos rezultātus kešatmiņā uz dokumentētu laiku, atkārtojiet īslaicīgas kļūdas un saglabājiet neskaidros gadījumus pārbaudei ar pagaidu statusu, nevis pārtrauciet pārdošanu.

Vai mākoņgrāmatvedības API var automātiski iesniegt manas PVN deklarācijas?

Tā var ģenerēt atskaitēm gatavus datus, kas grupēti pa shēmām un dalībvalstīm, aprēķināti no nemainīgās virsgrāmatas, iekļaujot labojumus. Tas, vai tā arī iesniedz datus caur katras valsts deklarāciju vārteju, ir atkarīgs no produkta un valsts. Nordlet aprēķina OSS un IOSS deklarācijas, sagatavo vietējās atskaišu pakas Lietuvai, Vācijai un Polijai un ģenerē VMI gatavus i.SAF reģistrus Lietuvai, taču tā neiesniedz neko nodokļu iestādes vietā. Uztveriet grāmatvedību, deklarāciju ģenerēšanu, eksportu, vārtejas iesniegšanu un maksājumu kā atsevišķus statusus, nevis pieņemiet, ka viens izsaukums visu izdara visur.

Kā rīkoties ar labojumiem pēc tam, kad periods ir slēgts?

Ievietojiet tos nākamajā periodā ar nepārprotamām saitēm uz sākotnējo dokumentu un ietekmēto deklarācijas periodu. Nordlet bloķē jaunu grāmatojumu ievietošanu slēgtā mēnesī, tostarp caur API, tāpēc labojumi plūst caur kredītrēķiniem vai stornējošajiem ierakstiem, nevis rediģēšanu. Tas saglabā saiti starp sākotnējo deklarāciju un korekciju.

Papildu lasāmviela