Marketplace tirgotāju apakškontu grāmatvedība: ieņēmumi pret kreditoru parādiem
Praktiķa ceļvedis par pircēja iemaksātās naudas, platformas komisijas, tirgotāju parādu, rezervju un izmaksu nodalīšanu, izmantojot sabalansētus grāmatojumus un strādājošu pasūtījumu un izmaksu datu modeli.
Pats izplatītākais kļūdas solis tirgotāju vietu (marketplace) grāmatvedībā ir pircēja bruto maksājuma uzskaitīšana par platformas ieņēmumiem. Pircējs samaksā 100 eiro, šī summa nonāk maksājumu apstrādātāja kontā, un kāds visu summu iegrāmato ieņēmumos. Grāmatvedības bilance uz brīdi saskan, ieņēmumi izskatās lieliski, līdz revidents pajautā, kur atrodas saistības pret tirgotāju. Tādu nav, jo tirgotājam piederošie 90 eiro nekad nav reģistrēti kā parāds.
Problēmas risinājums ir strukturāls, nevis kosmētisks. Tirgotāju vietai ir nepieciešams virsgrāmatas modelis, kas jau no pirmā ieraksta nodala piecas dažādas naudas plūsmas: tranzītā esošo pircēja naudu, platformas komisijas ieņēmumus, kreditoru parādus tirgotājiem, komisijas maksas un rezerves. Izmaksas ir sestais notikums, kas dzēš kreditoru parādu, nevis patstāvīgs ieņēmumu vai izdevumu notikums. Šajā ceļvedī ir parādīti sabalansēti grāmatojumi un datu modelis, kas palīdz šīs plūsmas turēt nodalītas.
Sāciet ar principāla un aģenta statusa noskaidrošanu
Pirms jebkura kontu struktūras jautājuma platformai ir jāizlemj, ko tieši tā pārdod. Saskaņā ar standartu ASC 606 tas tiek izvērtēts katrai konkrētajai precei vai pakalpojumam, un šis lēmums nosaka, vai ieņēmumi tiek atzīti bruto vai neto apmērā. Platforma vienai plūsmai var būt principāls, bet citai – aģents.
Tipiskā tirgotāju vietas darījumā, kur tiek pārdotas tirgotāja preces, platforma parasti darbojas kā aģents. Tā nodrošina tirgotāja preces nonākšanu līdz pircējam, neuzņemas krājumu risku un saņem atlīdzību komisijas maksas veidā. Deloitte vadlīnijas par principāla un aģenta lomu saskaņā ar ASC 606 balsta šo pārbaudi uz kontroli: atbildība par solījuma izpildi, krājumu risks un cenu noteikšanas brīvība ir rādītāji, nevis kontrolsaraksts, kas ignorē pamata kontroles novērtējumu.
Iemesls, kāpēc šim jautājumam ir jābūt iekļautam virsgrāmatas dizainā, nevis tikai iekšējā memorandā, ir tas, ka šis secinājums nosaka katru nākamo grāmatojumu. Ja platforma ir aģents, tirgotāja daļa ir saistība jau tajā brīdī, kad tā ir nopelnīta. Ja platforma ir principāls attiecībā uz piegādes vai garantijas pakalpojumu, šī daļa ir platformas ieņēmumi. Saglabājiet šo secinājumu kā datu elementus:
principal_agent_rolespecified_good_or_servicecommission_rule_idcontrol_assessment_versioneffective_from/effective_to
Revidentam, kurš pēc diviem gadiem skatās uz neto komisijas rindu, ir jāspēj redzēt, kāpēc netika izmantota bruto summa. Kā norāda BillingPlatform savā materiālā par ASC 606 principāla un aģenta lomu, apzīmējums "tirgotāju vieta" neatrisina šo jautājumu. To izdara kontroles analīze.
Definējiet tirgotāja atlikumu pirms jebkura grāmatojuma noteikumu rakstīšanas
"Tirgotāja atlikums" nav viens vienīgs skaitlis. Tirgotājam var būt labs kopējais vēsturiskais bilances rādītājs, taču nav pieejamu līdzekļu izmaksai, jo nauda joprojām ir ceļā vai iesaldēta rezervē. Apvienojot šos stāvokļus, tiks sniegta nepareiza informācija par to, ko tirgotājs var izņemt un ko platforma joprojām ir parādā.
Vismaz ir jāizseko šādiem stāvokļiem:
- Gaidīšanā (Pending): nopelnīts vai iekasēts, bet vēl nav tiesīgs uz izmaksu
- Pieejams (Available): atbilst izmaksas nosacījumiem saskaņā ar platformas noteikumiem
- Rezervēts (Reserved): ieturēts pret iespējamām atmaksām, strīdiem vai chargeback gadījumiem
- Izmaksāts (Paid out): pārsūtīts vai iesniegts norēķiniem
- Negatīvs (Negative): summa, ko tirgotājs ir parādā un ko var ieturēt no nākotnes ieņēmumiem
- Pagaidu konts (Suspense): saņemts, bet tirgotājs vai grāmatvediskā apstrāde vēl nav noteikta
Maksājumu pakalpojumu sniedzēji jau izmanto šo nodalījumu. Stripe katru saistīto kontu sadala gaidīšanas un pieejamajiem atlikumiem, kā arī saglabā platformas līmeņa rezervēto atlikumu noteiktiem negatīviem tirgotāju atlikumiem. Ja maksājumu apstrādātājs tos dala, tas jādara arī virsgrāmatai, pretējā gadījumā kontu saskaņošana neizdosies.
Kontu plāns un būtiskās dimensijas
Darbojošs sākotnējais modelis atdala norēķinu kontus, saistības un ieņēmumus, kā arī katrā būtiskā grāmatojumā ietver tirgotāja dimensiju.
| Mērķis | Konts vai dimensija | Apstrāde |
|---|---|---|
| Apstrādātāja līdzekļi, kas gaida norēķinu | Maksājumu apstrādātāja norēķinu konts (Clearing) | Norēķinu aktīvs |
| Bankā ieskaitītā apstrādātāja izmaksa | Banka | Aktīvs |
| Tirgotāja nopelnītā, bet vēl nesamaksātā summa | Kreditoru parādi tirgotājiem (Seller payables) | Saistības |
| Tirgotāja līmeņa detaļas | seller_id dimensija |
Saistību detaļas, nevis ieņēmumi |
| Platformas komisija | Komisijas ieņēmumi | Ieņēmumi |
| PVN vai tirdzniecības nodoklis | Maksājamais nodoklis | Saistības |
| Apstrādātāja komisijas maksas | Maksājumu apstrādes izdevumi | Izdevumi |
| Tirgotāju rezerves | Rezervju saistības | Atkarībā no līguma |
| Atmaksas | Pret-ieņēmumi vai atmaksas | Atsauc sākotnējo apstrādi |
| Maksājumu pretenzijas (Chargebacks) | Zaudējums, debitoru parāds vai piedziņa no tirgotāja | Atkarībā no tā, kurš uzņemas zaudējumu |
| Izmaksas, kas gaida bankas apstiprinājumu | Tirgotāju izmaksu norēķinu konts | Norēķinu konts |
| Neatalocētas summas | Pagaidu konts (Suspense) | Pagaidu izņēmums |
Katram būtiskam grāmatojumam ir jāsatur tirgotājs, pasūtījums, izmaksu sūtījums, apstrādātājs, valūta, juridiskā persona, nodokļu režīms, notikuma veids, ārējā atsauce un saite uz iespējamu atsaukumu. Bez šiem datiem tirgotāju apakšgrāmata nevar pierādīt atsevišķu atlikumu, un virsgrāmata nevar pierādīt kopējo summu.
Apakšgrāmatu var ieviest kā vienu saistību kontu katram tirgotājam, vienu kopējo kreditoru parādu kontu ar seller_id dimensiju vai sadalījumu starp parādiem, rezervēm un izmaksu norēķiniem. Kopējais konts ar dimensiju mērogojas labāk, tikko jums ir vairāki desmiti tirgotāju. Izvēlieties modeli kopā ar savu grāmatvedi, jo klientu līdzekļu aizsardzības noteikumi un vietējie maksājumu regulējumi var ietekmēt to, kā līdzekļi ir jāuzrāda. Grāmatojumu mehānikai mūsu raksts par dubultieraksta virsgrāmatas API tirgotāju vietu grāmatvedībai apskata virsgrāmatas pamatstruktūras, uz kurām balstās šis modelis.
Grāmatojiet tirdzniecību ar atsevišķām tirgotāja un platformas rindām
Apskatīsim aģenta darījumu: pircējs samaksā 100 eiro, platformas komisija ir 10 eiro, tirgotājs nopelna 90 eiro. Brīdī, kad komisija un tirgotāja ieņēmumi ir nopelnīti:
| Konts | Debets | Kredīts |
|---|---|---|
| Maksājumu apstrādātāja norēķinu konts | 100 € | |
| Kreditoru parādi tirgotājam - A tirgotājs | 90 € | |
| Komisijas ieņēmumi | 10 € |
Svarīgā kontrole: 90 eiro tiek iegrāmatoti kredītā saistībās, nevis ieņēmumos. Platforma atzīst 10 eiro. Šis ir rezultāts, kuru ASC 606 tirgotāju vietas piemērs paredz aģentam, kad platforma atzīst savu komisiju, nevis tirgotāja pilnu pārdošanas summu.
Ja nodoklis tiek iekasēts atsevišķi, pievienojiet maksājamā nodokļa rindu un samaziniet tirgotāja vai platformas summu saskaņā ar nodokļu analīzes rezultātu. Neiekļaujiet nodokli komisijas maksā vai tirgotāja parādā ērtības labad.
Neļaujiet apstrādātāja komisijām sajaukties ar ieņēmumu un parādu aprēķiniem
Trīs lietas pastāvīgi tiek sajauktas: platformas komisija, apstrādātāja maksa un izmaksas summa. Tās ir dažādas lietas, un tās skar dažādus kontus.
Pircējs samaksā 100 eiro, komisija ir 10 eiro, apstrādātājs patur 3 eiro.
- Komisijas ieņēmumi paliek 10 eiro apmērā, ja tā paredz līgums.
- Apstrādātāja 3 eiro maksa ir izdevumi.
- Kreditoru parāds tirgotājam ir 90 eiro, ja vien tirgotāja līgums nenosaka, ka apstrādes maksu sedz tirgotājs. Tikai tad tas samazinās līdz 87 eiro ar atbilstošu 3 eiro uzrēķinu tirgotājam.
Iegrāmatojot tikai neto summu 97 eiro apmērā, kas nonāk bankā, ar vienu gājienu tiek izdzēsta bruto pārdošanas summa, komisija un apstrādes maksa. Mūsu maksājumu saskaņošanas rokasgrāmata pauž to pašu: sadaliet norēķinu sastāvdaļās, uzskatiet apstrādātāja maksas par izdevumiem un neļaujiet neto depozītam aizvietot ieņēmumus.
Modelējiet pieejamību, rezerves un izmaksas kā atsevišķus notikumus
Nauda starp tās saņemšanu un norēķinu maina statusu vairākas reizes. Katra pāreja ir pelnījusi savu grāmatojumu, un rezerves nekad nav neizskaidrojams ieņēmumu samazinājums.
Kad pieejamie līdzekļi tiek novirzīti rezervē:
| Konts | Debets | Kredīts |
|---|---|---|
| Kreditoru parādi tirgotājam - A tirgotājs | 15 € | |
| Tirgotāja rezervju saistības | 15 € |
Kad rezerve tiek atbrīvota, veiciet pretējo grāmatojumu. Tirgotāja kopējās saistības nav mainījušās, ir mainījies to statuss. Stripe dokumentē rezerves darījumus, kas palielina un atbrīvo rezerves, kā arī piedziņas pārskaitījumus ilgstoši negatīviem atlikumiem, tāpēc tam ir nepieciešami identificējami konti, nevis vienkāršs savstarpējs ieskaits.
Izmaksām ir savs divu soļu process. Apstiprināšanas brīdī:
| Konts | Debets | Kredīts |
|---|---|---|
| Kreditoru parādi tirgotājam - A tirgotājs | 90 € | |
| Tirgotāju izmaksu norēķinu konts | 90 € |
Pēc apstiprināta bankas norēķina:
| Konts | Debets | Kredīts |
|---|---|---|
| Tirgotāju izmaksu norēķinu konts | 90 € | |
| Banka | 90 € |
Ja izmaksa neizdodas, atgrieziet norēķinu konta summu atpakaļ tirgotāja kreditoru parādos. Izmaksa ir saistību dzēšana, nevis izdevumi. Uzskatot to par izdevumiem, tiek veikts dubulto izdevumu uzskaites dublējums pret pārdošanu, kas jau reģistrēja kreditoru parādu. Stripe atdala izmaksas statusu (pending, in_transit, paid, failed, canceled) un paredzamo saņemšanas datumu no uzsākšanas brīža, un šos datumus nevajadzētu apvienot vienā laika zīmogā.
Pasūtījumu un izmaksu datu modelis
Apakšgrāmata darbojas ar notikumiem, nevis ar lietotnes aktuālo pasūtījuma statusu. Katrs notikums, kas ietekmē tirgotāju, satur vienotu struktūru:
seller_id,event_id,order_idevent_type(sale, refund, chargeback, reserve_hold, reserve_release, payout, adjustment)effective_date,posting_datecurrency,direction,gross,commission,fees,reserverefund_ref/dispute_refpayout_batch_idreversal_ofsource_status,idempotency_key
Slēguma atlikumu aprēķina no šiem notikumiem, nevis saglabā mainīgu lauku:
Tirgotāja slēguma atlikums
= sākuma atlikums
+ tirgotāja kredīti
− tirgotāja debeti
− izmaksas
± rezervju kustība
± korekcijas
Katram ārējam notikumam ir nepieciešama droša vienreizējas izpildes atslēga (idempotency key), lai atkārtoti pieprasījumi un dubultie tīmekļa ziņojumi (webhooks) nepieliktu tirgotājam dubultu kredītu vai neveiktu dubultu izmaksu. Strādājoši paraugi:
- Tirgotāja žurnāla notikums:
seller_id:order_id:event_type:version - Izmaksu sūtījums:
processor:payout_id - Apstrādātāja notikums:
processor:event_type:processor_event_id
Stripe savās tīmekļa ziņojumu vadlīnijās brīdina, ka dubultie notikumi rodas, tāpēc dublikātu noteikšana nav izvēles iespēja. Iegrāmatotie ieraksti paliek nemainīgi. Korekcijas tiek veiktas caur pretējo grāmatojumu un koriģēto grāmatojumu, un tieši jūsu notikumu struktūra ietver reversal_of saiti un iemeslu. Virsgrāmata saglabā grāmatojumus, nevis šo saiti: Nordlet piedāvā žurnāla transakciju izveidi, saņemšanu un sarakstu savā API dokumentācijā un nepiedāvā atjaunināšanu vai dzēšanu, tāpēc korekcija vienmēr ir jauns darījums, nevis labojums.
Atmaksas un chargeback gadījumi ir saistīti ar oriģinālo darījumu, tie nepeld gaisā
Atmaksai, kas parādās nākamās nedēļas izmaksā, nekad nevajadzētu kļūt par jaunu negatīvu pārdošanu, kas pievienota šai izmaksai. Saistiet to ar oriģinālo darījumu un saglabājiet sākotnējo tirgotāja sadalījumu. Atkarībā no līguma:
- Atsauciet komisiju, ja līgums paredz tās atmaksu
- Debetējiet tirgotāja parādu, ja tirgotājs uzņemas atmaksu
- Debetējiet platformas zaudējumu kontu, ja to uzņemas platforma
- Palieliniet rezervi, kamēr strīds ir atvērts, atbrīvojiet vai izmantojiet to pēc atrisināšanas
Chargeback gadījumi pēc izmaksas ir brīdis, kad parādās negatīvi atlikumi. Tirgotāja nauda jau ir prom, tāpēc platforma vai nu piedzen to no nākotnes ieņēmumiem, vai uzņemas zaudējumus. Modelim ir jāļauj veidot negatīvus tirgotāju atlikumus un jādefinē piedziņas noteikums. Adyen tirgotāju vietu pārskati parāda, ka atmaksas un chargeback gadījumi katram konta turētājam rada atsevišķas debeta rindas – tā ir detalizācijas pakāpe, uz kuru tiekties.
Saskaņojiet katru izmaksu atsevišķi, nevis mēneša griezumā
Pirms grāmatošanas sadaliet katru apstrādātāja norēķinu sastāvdaļās un saskaņojiet katru izmaksu atsevišķi, nevis agregējiet mēnesi:
Bruto maksājumi
− atmaksas
− apstrādātāja maksas
− chargeback gadījumi
± rezerves un korekcijas
= neto apstrādātāja izmaksa
Pēc tam pierādiet, ka katram tirgotājam un valūtai sakrīt četri atlikumi: tirgotāja apakšgrāmata, apstrādātāja tirgotāja bilance, izmaksu pārskats un bankas norēķinu konts. Kad tie atšķiras, klasificējiet atšķirību (laika nobīde, trūkstošs notikums, dublikāts, nepareiza attiecināšana, nepareiza valūta, neizdevusies izmaksa, nepareizai pusei iegrāmatots chargeback). Atšķirību vienkārša dzēšana ar savstarpēju ieskaitu ir veids, kā kļūdas slēpj viena otru un saglabājas līdz nākamajam slēgumam.
Pilna mēneša agregēšana ļauj laika nobīdēm savstarpēji dzēsties un slēpj reālas nepilnības. Saskaņošana pa izmaksām, kas piesaistīta izmaksas ID un darījuma atsaucei, nevis summai un datumam, palīdz tās atklāt.
Biežāk sastopamās kļūdas
| Kļūdas veids | Kāpēc tas kaitē | Kontrole |
|---|---|---|
| Pircēja bruto maksājums iegrāmatots kā ieņēmumi | Uzpūš ieņēmumus, slēpj saistības pret tirgotāju | Sadaliet parādu un komisiju pelnīšanas brīdī |
| Iegrāmatoti tikai neto depozīti | Zūd bruto summa, maksas, atmaksas, rezerves | Sadaliet katru norēķinu sastāvdaļās |
| Izmaksa iegrāmatota kā izdevumi | Nepareizi uzrāda saistību dzēšanu | Debetējiet tirgotāja parādu izmaksas brīdī |
| Viens tirgotāja bilances lauks | Sajauc gaidāmos, pieejamos, rezervētos, izmaksātos līdzekļus | Izsekojiet bilances statusiem eksplicieti |
| Komisija aprēķināta izmaksas brīdī | Ieņēmumi seko izmaksu grafikam | Atzīstiet komisiju, kad tā ir nopelnīta |
| Rezerves uzskatītas par ieņēmumu samazinājumu | Aizēno laika grafiku un risku | Izsekojiet ieturēšanai, atbrīvošanai un izmantošanai atsevišķi |
| Atmaksas piemērotas jaunākajai izmaksai | Izjauc pasūtījumu piesaisti | Saistiet atmaksu ar oriģinālo darījumu |
| Iegrāmatotu ierakstu labošana | Iznīcina revīzijas seku ķēdi | Veiciet pretējo grāmatojumu un jaunu grāmatojumu |
| Atkārtoti tīmekļa ziņojumi (webhooks) | Dubultie kredīti un izmaksas | Vienreizējas izpildes atslēgas, dublikātu noteikšana |
| Saskaņošana tikai pēc summas un datuma | Sakrīt dažādas pozīcijas | Saskaņojiet pēc izmaksas ID, darījuma ID, tirgotāja, valūtas |
Ko darīt vispirms
Uzzīmējiet naudas plūsmu pirms pieskaršanās kontu plānam. Pierakstiet katru notikumu no maksājuma saņemšanas līdz rezerves atbrīvošanai un atzīmējiet, kuri no tiem rada ieņēmumus, kuri rada saistības un kuri tikai maina statusu.
Pēc tam izveidojiet vienu pilnu plūsmu no sākuma līdz beigām un pierādiet, ka tā sabalansējas: normāla pārdošana, daļēja atmaksa, chargeback pēc izmaksas, ieturēta un atbrīvota rezerve, kā arī neizdevusies izmaksa. Palaidiet šos datus ar zināmiem sagaidāmajiem atlikumiem. Ja tirgotāja parādu konta kontrolsumma vienojas ar apakšgrāmatu summu, apstrādātāja norēķini sakrīt ar norēķinu pārskatu un bankas depozīts sakrīt ar izmaksas ID, jums ir strādājoša sistēmas mugurkaula daļa.
Ieslēdziet perioda slēgšanu tikai pēc tam, kad pirmais mēnešs ir aizvērts tīri ar nulles atlikumu pagaidu kontā. Pāragra slēgšana tikai iecemenē kļūdas.
Nordlet nodrošina norēķinu grāmatošanu atbilstoši šiem principiem jau standarta komplektācijā: platformas komisija nonāk komisijas ieņēmumos, tirgotāja daļa – kreditoru parādos tirgotājiem, apstrādātāja maksas – maksājumu apstrādes izdevumos, un viss, kas vēl nav attiecināts, – pagaidu kontā. Virsgrāmatas periodi paliek atvērti, līdz tos skaidri aizverat, tāpēc pirmo mēnesi var aizvērt, tiklīdz pagaidu konts ir tukšs. Funkciju lapa uzskaita iekļautās iespējas.
FAQ
Vai pircēja maksājums jebkad ir platformas ieņēmumi?
Tikai tām konkrētajām precēm vai pakalpojumiem, kur platforma ir principāls. Aģenta tirgotāju vietas darījumā ar tirgotāja precēm ieņēmumi ir komisija, un tirgotāja daļa ir saistība. Platforma var būt principāls attiecībā uz izpildes pakalpojumu un aģents attiecībā uz pamatprecēm vienā un tajā pašā pasūtījumā, tāpēc novērtējums tiek veikts katrai konkrētajai precei vai pakalpojumam, nevis uzņēmumam kopumā.
Vai rezervēm vajadzētu samazināt ieņēmumus?
Nē. Rezerve ir laika un riska sadalījums, nevis ieņēmumu korekcija. Pārvietojiet līdzekļus no tirgotāja parādiem uz rezerves saistībām, kad tos ieturat, un veiciet pretējo grāmatojumu, kad tos atbrīvojat. Ieņēmumus un komisiju neietekmē tas, vai tirgotāja nauda šobrīd ir rezervēta.
Kā apturēt dubultas izmaksas no tīmekļa ziņojumu (webhook) atkārtotiem mēģinājumiem?
Pievienojiet vienreizējas izpildes atslēgu (idempotency key) katram ārējam notikumam, piemēram, processor:payout_id izmaksu sūtījumiem, un ierakstīšanas brīdī nosakiet dublējošos notikumus. Pakalpojumu sniedzēji nepārprotami brīdina, ka notiek dubultie tīmekļa ziņojumu piegādes mēģinājumi, tāpēc virsgrāmatai ir jānoraida otrais mēģinājums, nevis jāgrāmato tas atkārtoti.
Vai tirgotāja atlikums var kļūt negatīvs?
Jā, un modelim ir jāļauj tam notikt. Chargeback, kas pienāk pēc tam, kad tirgotājam jau ir samaksāts, atstāj platformai vai nu debitoru parādu no tirgotāja, vai zaudējumus, ko tā uzņemas. Negatīvo atlikumu slēpšana vienkārši maskē neuzskaitītas saistības.
Kāpēc saskaņot katru izmaksu atsevišķi, nevis ikmēneša kopsummu?
Tāpēc, ka, agregējot mēnesi, laika nobīdes un kļūdas savstarpēji dzēšas, tāpēc kopsummas var sakrist, kamēr atsevišķi darījumi ir nepareizi. Saskaņošana pa izmaksām, kas saskaņota pēc izmaksas un darījuma ID, izvelk gaismā trūkstošos notikumus, dublikātus un nepareizi attiecinātos chargeback gadījumus pirms mēneša slēgšanas.