Nordlet

← Blogi

Stripe Connect Marketplace Accounting Workflow

A practitioner's guide to posting charges, fees, transfers, refunds, disputes, and reserves into a marketplace ledger that reconciles cleanly.

Nordlet Team · · 10 min lukuaika

Suurin osa markkinapaikkojen kirjanpito-ongelmista johtuu yhdestä ja samasta virheestä: Stripe-tilityksen käsittelemisestä myyntitulona. Tilitys on kymmenien erillisten taloudellisten tapahtumien nettosumma, ja sen kirjaaminen yhtenä tulorivinä pyyhkii pois alustan provision, myyjälle kuuluvan velan sekä kaikki tilityksen sisään kätkeytyvät kulut ja erimielisyydet. Oikea työnkulku pilkkoo tilityksen osiinsa ennen kuin mitään viedään kirjanpitoon.

Tässä oppaassa käydään läpi jokainen Stripe Connectin saldo- ja maksutapahtumaluokka (balance-transaction) ja ohjataan se oikeaan kirjanpidon paikkaan: myyntisaamisiin, provisiotuottoihin, myyjävastuihin, käsittelykuluihin ja siirtotilille (suspense). Työnkulussa hyödynnetään Nordletin dokumentoituja tuonti- ja tilityspäätepisteitä kirjausmekanismina, esitetään laskettu tilitysesimerkki ja päätetään opas täsmäytystarkistuslistaan, jonka voi suorittaa ennen jokaista tilinpäätöstä tai kuukauden sulkemista.

Määritä Connect-veloitusmalli ennen suunnittelua

Kirjanpitosääntöjä ei voi laatia ennen kuin tiedät, mitä veloitusmallia kukin maksureitti käyttää. Malli määrittää sen, kenen Stripe-saldolle veloitus kirjataan, kuka maksaa kulut sekä mihin palautukset ja reklamaatiot vaikuttavat ensin.

Connect-malli Veloitus kohdistuu Vastaa Stripe-kuluista Palautukset/reklamaatiot pienentävät Vaikutus kirjanpitoon
Suorat veloitukset (Direct charges) Yhdistetty tili Sovittavissa osapuolten kesken Yhdistetyn tilin saldo Alusta kirjaa välityspalkkionsa tuotoksi; myyjän maksutapahtumat näkyvät pääosin yhdistetyn tilin kirjanpidossa
Kohdeveloitus (Destination charges) Alusta, josta varat siirretään heti yhdelle yhdistetylle tilille Alusta Alusta Alusta kirjaa asiakassaamisen ja Stripe-kulun; myyjän osuus on ostovelka, ei myyntiä
Erilliset veloitukset ja siirrot (Separate charges and transfers) Alustan veloitus, jota seuraa yksi tai useampi erillinen siirto Alusta Alusta Veloitus ja myyjän siirrot ovat erillisiä tapahtumia; myyjän vastuu seurataan erillään asiakasveloituksesta

Stripen oma ohjeistus maksujen toiminnasta Connect-integraatiossa vahvistaa, että kohdeveloitusmallissa sekä erillisissä veloituksissa ja siirroissa alustan saldo kantaa maksukulut, palautukset ja takaisinperinnät. Suorissa veloituksissa yhdistetty tili vastaanottaa veloituksen, ja kulut voidaan veloittaa kummalta osapuolelta tahansa.

Käytännön sääntö: älä sano, että "Stripe-tilitys on myyjän myyntiä" tai että "myyjä maksaa kulut", ennen kuin olet kirjannut ylös kunkin virran veloitusmallin. Tallenna kyseinen malli jokaisen tapahtuman yhteyteen. Suorien veloitusten ja kohdeveloitusten sekoittaminen saman kirjaussäännön alle on nopein tapa vääristää sekä myyntiä että velkoja.

Tässä oppaassa oletetaan käytettävän kohdeveloitusmallia tai erillisiä veloituksia ja siirtoja, koska näissä malleissa alustan saldo kantaa kirjanpidollisen vastuun ja näille rakennetaan useimmat markkinapaikkojen pääkirjanpidot.

Jäsennä varojen virta ennen ainoankaan rivin tuontia

Ennen tietojen tuontia piirrä yksisivuinen tapahtumakartka kullekin virralle:

Asiakkaan maksu
  -> Stripe-veloitus / maksutapahtuman saldo
  -> Stripe-kulut
  -> alustan välityspalkkio (komissio)
  -> siirto yhdistetylle tilille
  -> palautus tai reklamaatio (tarvittaessa)
  -> Stripe-tilitys
  -> pankkisuoritus

Jokainen nuoli on erillinen saldo- ja maksutapahtuma, jolla on oma tunnus, luokka, summa ja päivämäärä. Käsittele Stripe-saldoa pankkimaisena selvitystilinä (clearing account): veloitukset virtaavat sisään, kulut ja siirrot viruttavat ulos, ja tilitys siirtää jäännöksen varsinaiseen pankkiin. Nordletin pankki- ja maksuaineistojen tuontidokumentaatio suosittelee täsmälleen tätä käsittelytapaa tavalliselle Stripe-toiminnalle.

Valitse oikea Stripe-lähiraportti

Käytä automaattisten tilityserien täsmäyttämiseen Stripen eriteltyä tilitysraporttia (Payout reconciliation, itemized). Se antaa yhden rivin saldo- ja maksutapahtumaa kohden, ryhmittelee rivit sarakkeen reporting_category mukaan, yhdistää jokaisen rivin tunnisteeseen automatic_payout_id sekä tarjoaa brutto-, kulu- ja nettosummat. Stripen raportinvalintaoppaan mukaan tämä raportti sisältää Connect-kenttinä muun muassa kentät charge_id, connected_account_id ja destination_payment_id.

Tilanteissa, joissa automaattiset tilitykset eivät ole käytössä (jotkut manuaaliset tilitysjärjestelyt), käytä sen sijaan saldoraporttia. Älä pidä hallintapaneelin (Dashboard) tilitysyhteenvetoa riittävänä todisteena kirjaukselle. Yhteenveto todentaa erän kokonaissumman, mutta vain eritelty raportti selittää sen osatekijät.

Stripe suosittelee luokittelua kentän reporting_category eikä vanhemman type-kentän kautta, ja jokainen rivi kantaa lähdetunnistetta source, joka yhdistää rivin taustalla olevaan kohteeseen. Huomioi ajoitusrajoitus: Stripe ilmoittaa päivittäisen raporttiaineiston olevan normaalisti saatavilla seuraavana päivänä klo 12 mennessä, eikä pikamaksuja (instant payouts) voi kohdistaa siististi yksittäisiin tapahtumiin, minkä vuoksi ne vaativat erillisen tapahtumahistorian täsmäytyksen.

Luokittele jokainen saldo- ja maksutapahtuma luokan mukaan

Käytä ensisijaisena luokittelijana kenttää reporting_category ja tarkista sen jälkeen kentät source_id, charge_id ja kuvaukset. Merkityksellinen luokittelu:

Stripe-toimintatapa Raportointiluokka (reporting_category) Kirjanpidollinen tulkinta
Asiakasveloitus, kortti tai paikallinen maksutapa charge Asiakkaan rahoittama saaminen tai myynnin tilitys
Palautus refund Alkuperäisen asiakasmaksun oikaisu / palautus
Stripen pidättämä käsittelykulu fee Maksun käsittelykulu
Alustan välityspalkkio platform_earning Proviisiotuotto
Palautettu välityspalkkio platform_earning_refund Proviisiotuoton vähennys
Siirto yhdistetylle tilille transfer Myyjää koskevan velan pienentyminen
Peruutettu siirto transfer_reversal Perintä yhdistetyltä tililtä
Takaisinperintä (chargeback) dispute Takaisinperinnän tappio; tarkista taustalla oleva riitatapaus
Voitettu tai peruutettu takaisinperintä dispute_reversal Aiemmin kirjatun takaisinperinnän palautus
Tilitys pankkiin payout Pankkisiirto, ei myyntiä
Peruutettu tilitys payout_reversal Varojen palautus Stripe-saldolle
Pidätetty varanto (reserve) connect_reserved_funds / risk_reserved_funds Rajoitetut varat, eivät oletusarvoisesti kulu
Pitkäaikaisen negatiivisen saldon perintä connect_collection_transfer Rahoitus- tai perintätapahtuma, joka vaatii riskipolitiikkaa

Terminologinen huomio: vanhemmassa saldo- ja maksutapahtumien type-kentässä käytetään samoille tapahtumille eri nimikkeitä, kuten payment, application_fee ja adjustment. Stripen dokumentaatio saldo- ja maksutapahtumatyypeistä luettelee molemmat sanastot. Älä sekoita type-kentän arvoa reporting_category-sääntöön äläkä keksi sellaista luokkaa kuten dispute_loss, jota Stripe ei vie järjestelmästä. Jos vientiaineistossa on nimike, jota et tunne, säilytä viety arvo sellaisenaan ja tarkista se lähdekohteesta.

Kirjaa normaali markkinapaikkatoiminta kirjanpitoon

Jos alustalla käytetään kohdeveloitusmallia tai erillisiä veloituksia ja siirtoja, kirjanpitomerkinnät ovat periaatteessa seuraavat.

Asiakasveloitus (asiakkaan rahat saapuvat Stripen selvityssaldolle):

Dr Stripe-selvitystili      Asiakasveloitus bruttona
    Cr Myyntisaamiset       Asiakasveloitus bruttona

Stripen käsittelykulu:

Dr Stripe-maksukulut        Stripe-kulu
    Cr Stripe-selvitystili  Stripe-kulu

Älä netota Stripe-kulua myyntiä vastaan, ellei kirjanpitokäytäntösi nimenomaisesti edellytä ja tue nettomääräistä esittämistapaa.

Alustan komissio (sinun tuottosi, joka vähennetään siitä summasta, joka muuten kuuluisi myyjälle):

Dr Myyjän ostovelat         Komission määrä
    Cr Proviisiotuotot      Komission määrä

Myyjän siirto (maksettavan summan tilitys, ei kulu):

Dr Myyjän ostovelat         Siirron määrä
    Cr Stripe-selvitystili  Siirron määrä

Siirto ei ole koskaan automaattisesti kulu. Myyjän osuus muuttuu velaksi heti veloituksen saapuessa, ja siirto kuittaa kyseisen velan. Nordletin tilityskirjaussäännöt noudattavat tätä periaatetta: platform_earning-rivit kirjataan provisiotuotoiksi, kun taas transfer-rivit pienentävät myyjän velkaa. Dokumentoidut oletuskirjausavaimet ovat settlements.commissionRevenue (oletus 5001), settlements.sellerPayable (oletus 4499), settlements.fees (oletus 6800) ja settlements.suspense (oletus 4440). Jokaista avainta voi muuttaa yrityskohtaisesti Nordlet-rajapinnan (API) kautta määritettävillä kirjaussäännöillä.

Käsittele palautukset alkuperäisen myynnin oikaisuna, älä irrallisina pankkitapahtumina

Palautus linkittyy alkuperäiseen veloitukseen tai laskuun. Periaatteellinen kirjaus:

Dr Palautukset / myynnin oikaisut    Palautuksen määrä
    Cr Myyntisaamiset                Palautuksen määrä

Varsinainen kirjaus riippuu siitä, onko myynti ehditty tulouttaa, pitääkö arvonlisävero oikaista ja palautetaanko alustan välityspalkkio. Yksi ainoa palautus voi aiheuttaa saamisen oikaisun, arvonlisäveron oikaisun, välityspalkkion palautuksen, siirron peruutuksen tai myyjän velan pienentymisen sekä Stripe-kuluvaikutuksen, joka on tarkistettava sen sijaan, että sen oletettaisiin tapahtuvan itsestään.

Ajoitusansat: palautus tilitetään usein myöhemmässä erässä kuin alkuperäinen veloitus. Suosi eriteltyä tilitysten täsmäytysraporttia sen sijaan, että muodostaisit palautuksen pelkän veloitustason vientiaineiston pohjalta. Nordletin dokumentaatio varoittaa nimenomaisesti, että maksutason (Payments) viennistä johdettu palautus on vain arvio silloin, kun palautus tilitetään myöhemmin. Tilitysten tuontitoiminto voi lukea palautusrivin järjestelmään, kohdistaa sen alkuperäiseen myyntiin ja oikaista saamisen erän kirjautuessa.

Käsittele reklamaatiot erillään palautuksista

Takaisinperintä eli reklamaatio (dispute) on kortinhaltijan tai myöntäjäpankin vaatimus, ja Stripe saattaa veloittaa sekä riidanalaisen summan että reklamaatiomaksun ennen asian ratkeamista. Kohdeveloitusmallissa sekä erillisissä veloituksissa ja siirroissa Stripe veloittaa molemmat summat suoraan alustan saldolta palautus- ja reklamaatio-ohjeistuksensa mukaisesti. Alusta voi yrittää periä summan takaisin peruuttamalla myyjän siirron.

Hävitty reklamaatio alustan näkökulmasta:

Dr Takaisinperintätappiot / avatut saamiset   Riidanalainen summa
Dr Reklamaatiokulut                          Reklamaatiomaksu
    Cr Stripe-selvitystili                   Yhteissumma

Jos myyjä kantaa tappion ja takaisinperintä on vahvistettu:

Dr Myyjän ostovelat / perintätili            Perittävä summa
    Cr Takaisinperinnän tuotot               Perittävä summa

Älä kirjaa myyjältä perintää pelkästään siksi, että siirron peruutusta on pyydetty. Varmista, että peruutus on luotu, se on onnistunut ja näkyy Stripe-saldolla. Jos reklamaatio voitetaan, Stripe palauttaa riidanalaisen summan dispute_reversal-rivin kautta. Oikaise tällöin takaisinperintätappio ja käsittele erikseen sellainen reklamaatiomaksu, jota Stripe ei palauta. Nordlet täsmää takaisinperintärivit aiemmin täsmäytetyn veloituksen charge_id-tunnuksen perusteella joko samasta tiedostosta tai aiemmasta tuonnista.

Laskettu tilitysesimerkki

Oletetaan tarkasteltavaksi yksi automaattinen tilityserä. Eritelty raportti sisältää seuraavat tiedot:

  • charge-rivi: brutto 100,00, Stripe-kulu 3,20, netto 96,80
  • platform_earning-rivi: 15,00, alustan komissio
  • transfer-rivi: 81,80 yhdistetylle myyjälle
  • refund-rivi aiemmasta myynnistä: brutto 20,00, tilitetään tässä erässä
  • payout-rivi: erän kokonaissumma siirrettynä pankkiin

Tilityksen koostumus Stripen tilitystunnisteen mukaisesti:

Bruttoveloitukset             100,00
- palautukset                  20,00
- Stripe-kulut                  3,20
- siirrot                      81,80
= netto alustan saldolle       -5,00

platform_earning-rivi ei siirrä rahaa uudelleen. Se nimeää sen 15,00 euroa, joka jää alustan saldolle kulun ja myyjän siirron poistumisen jälkeen, jotta alusta voi kirjata provisiotuoton sen päättelemisen sijaan.

Tässä tapauksessa myyjän siirto ja palautus ylittävät nettomääräisen veloitustapahtuman, joten erä muodostuu hieman negatiiviseksi, mikä pienentää seuraavaa tilitystä tai kuluttaa saldoa. Kirjattava tosien oikaisee palautetun saamisen, kirjaa 15,00 euron provisiotuoton, kirjaa 3,20 euron kulun, pienentää myyjän ostovelkaa siirron verran ja kirjaa palautuksen oikaisun. Pankkitiliote täsmää tilille saapuvaan nettosummaan. Mikään yksittäinen luku ei vastaa "myyntiä", mikä onkin koko prosessin ydin.

Tuonti ja kirjaus Nordletin tilityspäätepisteen kautta

Käytä tilitystason täsmäytykseen seuraavaa päätepistettä:

POST /v1/bank/settlements/import

Käytä Stripe-palveluntarjoajaa ja eriteltyä CSV-tiedostoa. Nordlet ryhmittelee rivit tunnisteen automatic_payout_id mukaan, muuttaa jokaisen tilityksen brutto-, kulu- ja nettosummilla varustetuksi tilityseräksi, ohittaa jo kirjatut tilitykset uudelleentuonnissa, ohittaa tilityksen koostumuksesta payout-rivit ja automaattisesti täsmää veloitus-, palautus- ja reklamaatiorivit käyttäen tilaus-, lasku-, PaymentIntent-, veloitus-, lähde- tai metatietoviitteitä. Stripe jakaa eritellyn raportin yhteen tiedostoon osiota kohden, joten tuo veloitus-, palautus- ja kulutiedostot yhdessä: tilitykseen kuuluvat rivit, jotka on jo tuotu mutta joita ei ole vielä kirjattu, yhdistetään olemassa olevaan erään. Tämä on tiedostoihin ja tilityspäätepisteisiin perustuva tuonti- ja kirjaustyönkulku eikä mikään reaaliaikainen Stripe-liitin. Ominaisuussivulla on esitelty pankki- ja tilityspuolen kattavuus.

Täsmää järjestyksessä: veloitukset laskuihin, palautukset alkuperäisiin veloituksiin, reklamaatiot alkuperäisiin veloituksiin ja komissiorivit komissiokäsittelyyn. Pidä Stripe-kulut, oikaisut, varannot ja tilitysrivit erillään laskujen täsmäytyksestä. Nordletin maksutäsmäytyksen sanaston mukaan kulu- ja oikaisurivejä ei ole tarkoitettukaan täsmäytettäväksi laskuihin; ohjaa ratkaisemattomat rahamääräiset erät siirtotilille (suspense). Manuaalinen korjaus tapahtuu komennolla bank/settlements/match { lineId, invoiceId }, jossa invoiceId arvona on null, mikäli täsmäytys halutaan purkaa.

Kirjaa tämän jälkeen yksi tasapainossa oleva erä:

POST /v1/bank/settlements/post

Tämä luo yhden tasapainotetun tositteen, kuittaa täsmätyt laskut, veloittaa pankkitilin kirjanpitotiliä nettotilityksellä, veloittaa kuluja, kreditoi saamisia veloituksista, oikaisee saamisia palautuksista ja takaisinperinnöistä, jakaa täsmäämättömät markkinapaikkaveloitukset provisiotuottojen ja myyjän ostovelkojen kesken, kun commissionPercent on annettu, sekä lähettää ratkaisemattomat summat siirtotilille. Myös kaikki sellaiset tuntemattomat luokat päätyvät siirtotilille, ja vastaus ilmoittaa kyseisistä luokista varoituksessa sen sijaan, että ne nieltäisiin hiljaisesti.

Täsmäytystarkistuslista

Suorita nämä tarkistukset ennen jokaista tilinpäätöstä tai kauden sulkemista:

  • Ei kaksoiskappaleita tunnisteesta balance_transaction_id
  • Ei kaksoiskappaleita tilityserästä (provider, payout_id)
  • Rivien net-sarakkeiden summa vastaa erän nettosummaa
  • Erän netto vastaa pankkitilitystä, huomioiden ajoituksen ja valuuttapolitiikan
  • Jokaisella palautuksella on alkuperäinen veloitus tai kirjattu poikkeus
  • Jokaisella reklamaatiolla on riita- tai veloitusviite
  • Jokaisella siirrolla on yhdistetyn tilin tunniste (connected_account_id)
  • Jokaisella platform_earning-rivillä on määritetty komissiokäsittely
  • Siirtotilin saldo on nolla tai se on kokonaan läpikäyty, mukaan lukien mahdolliset kirjausvaroituksessa mainitut tuntemattomat luokat
  • Myyjän ostovelka ei ole negatiivinen ilman hyväksyttyä ennakkoa tai perintäkäytäntöä
  • Kirjattuja eriä ei voi tuoda uudelleen tai kirjata uudelleen ilman erillistä toimenpidettä
  • Muussa kuin yrityksen perusvaluutassa oleva tilitys muunnetaan tilityspäivän kurssilla, ja erotus kunkin laskun omaan kurssiin verrattuna kirjaustaan toteutuneeksi kurssivoitoksi tai -tappioksi; tilitys, jossa on sekaisin eri valuuttoja, hylätään tuontivaiheessa

Täsmäytys suoritetaan kolmella tasolla: rivitasolla (jokaisella tapahtumalla on säilynyt tunniste, luokka, summa, valuutta ja lähde), tilitystasolla (eriteltyjen nettojen on vastattava Stripe-tilitystä ja pankkisuoritusta) sekä pääkirjanpitotasolla (kirjattu tosite tasapainottaa ja muodostaa halutut tuotto-, kulu-, saaminen-, myyjän velka- ja siirtotilipositiot). Erityisesti myyjien saldojen osalta varmista, että myyjän ostovelkojen alkuvuoro lisättynä uusilla myyjän osuuksilla ja vähennettynä siirroilla ja pätevillä peruutuksilla on yhtä suuri kuin myyjän ostovelkojen loppusaldo.

Toistuva virhe kaikkien markkinapaikkojen kirjanpidossa on sama, josta aloitettiinkin: rakenteellisen tilityksen tiivistäminen yhdeksi luvuksi. Pidä osat erillään, ankkuroi jokainen osa pysyvään Stripe-tunnisteeseen ja anna siirtotilin pitää hallussaan asioita, joita et vielä pysty selittämään. Puhtaaseen tilinpäätökseen tilintarkastaja voi luottaa.

FAQ

Onko Stripe-tilitys alustan myyntiä?

Ei. Tilitys on veloitusten, palautusten, maksukäsittelykulujen, myyjän siirtojen, reklamaatioiden ja oikaisujen nettosumma, jotka sattuivat asettumaan samaan erään. Sen kirjaaminen yhtenä tulorivinä pyyhkii pois myyjän velan ja sen sisällä olevan käsittelykulun. Välityspalkkiomarkkinapaikalla myyntiä on komissio, jonka platform_earning-rivit tunnistavat.

Mitä Stripe-raporttia vasten minun pitäisi täsmäyttää?

Eriteltyä tilityksen täsmäytysraporttia (Payout reconciliation, itemized), koska se antaa yhden rivin saldo- ja maksutapahtumaa kohden sisältäen raportointiluokan (reporting_category), automaattisen tilityksen tunnisteen (automatic_payout_id) sekä brutto-, kulu- ja nettosummat. Hallintapaneelin tilitysyhteenveto todentaa vain erän kokonaissumman. Mikäli automaattiset tilitykset eivät ole käytössä, käytä sen sijaan saldoraporttia.

Pitäisikö myyjälle tehtävä siirto kirjata kuluksi?

Ei. Myyjän osuus muuttuu velaksi heti asiakkaan veloituksen saapuessa, ja siirto kuittaa kyseisen velan. Siirtojen kirjaaminen kuluksi kaksinkertaistaa kustannukset ja jättää myyjän ostovelat pysyvästi liian suuriksi.

Mitä tapahtuu sellaiselle Stripe-riville, jonka luokkaa tuontiohjelmisto ei tunne?

Se kirjataan tilitysten siirtotilille (oletus 4440), ja kirjausvastaus palauttaa varoituksen, joka nimeää kyseiset siirtotilille päätyneet luokat. Varannot ja poikkeukselliset oikaisut päätyvät tyypillisesti tänne, mikä on tarkoituksellista: rahat pysyvät näkyvissä ja kirjanpito pysyy tasapainossa, kunnes joku päättää, mihin ne kuuluvat.

Miten käsitellään sellaiset palautukset, jotka tilitetään myöhemmässä erässä?

Ne saapuvat myöhemmän tilityksen eritellyllä raportilla refund-rivinä ja ne täsmätään takaisin alkuperäiseen veloitukseen aiemmin täsmäytetyn veloituksen charge_id-tunnuksen kautta. Veloitustason maksuviennistä (Payments) johdettu palautus on tässä tapauksessa vain arvio, joten eritelty raportti on turvallisempi lähde.

Lisälluettavaa