Nordlet

← Dokumentacija / Vodiči

Uvoz podatkov o bančnih in plačilnih transakcijah

Izpisi v formatu camt.053, datoteke CSV za Stripe, usklajevanje poravnav ponudnikov plačilnih storitev in nastavljivi viri JSON.

Vsi uvozi se zabeležijo kot bančne transakcije na bančnem računu (bank/accounts/create). Transakcije vsebujejo identifikator externalId; ponovni uvoz iste datoteke je varen, saj se vrstice, katerih kombinacija vrednosti (bankAccountId, externalId) že obstaja, preskočijo in zabeležijo v števcu preskočenih vnosov (skipped). Uvožene transakcije imajo najprej status new in se knjižijo v glavno knjigo šele takrat, ko so usklajene (bank/transactions/match, pri čemer so kandidati na voljo prek bank/transactions/suggest-matches).

Spletna aplikacija ponuja iste uvoze pod menijem Banka → Uvoz datoteke (nalaganje datotek, izbira predloge).

Napačno uskladitev je mogoče razveljaviti s klicem bank/transactions/unmatch (v vmesniku Banka → Transakcije kot Razveljavi uskladitev). Knjižene postavke se nikoli ne urejajo ali brišejo: plačilo, usklajeno z računom, ali postavka, ki jo je predloga za uvoz knjižila na konto, prejme stornacijski temeljni dokument z vsemi postavkami na nasprotni strani, z datumom date (privzeto: danes, pri čemer datum ne sme biti pred datumom prvotnega knjiženja). Znesek plačila in status plačila računa se zmanjšata za znesek zadevne bančne postavke. Postavka, povezana s poravnavo ponudnika plačilnih storitev, se samo razveže, ker knjiženje poravnave spada k seriji. Postavka se vrne v status new in jo je mogoče ponovno uskladiti. Datum stornacije mora spadati v odprto obračunsko obdobje.

Predloge za uvoz

Predloga za uvoz opredeljuje vir podatkov, navaja polja, ki jih vir posreduje, in preslikava polja z zneski na konte v glavni knjigi. Predloge se upravljajo pod menijem Banka → Predloge za uvoz ter prek virov bank/import-templates/create|update|delete|get|list.

POST /v1/bank/import-templates/create
{
  "name": "Stripe payments export",
  "type": "stripe",
  "fields": [
    { "name": "id" },
    { "name": "Created date (UTC)" },
    { "name": "Amount" },
    { "name": "Fee", "accountCode": "6800" },
    { "name": "Amount Refunded" }
  ],
  "metaFields": ["order_id"]
}
  • Vrednost type je ena od naslednjih: stripe, iso20022, bank_connection ali revolut.
  • Vsako polje ima name in opcijsko kodo konta accountCode. Konte je dovoljeno določiti samo za polja, ki vsebujejo denarne zneske: Amount, Fee in Amount Refunded za Stripe; Ntry/Amt za camt.053; transaction_amount.amount za bančni vir. Konto mora obstajati v kontnem načrtu (ustvarite ga z ledger/accounts/create).
  • Polje fields se lahko izpusti; v tem primeru se privzamejo standardna polja za posamezno vrsto: imena stolpcev v datoteki za izvoz plačil Payments → Export sistema Stripe (brez 19 stolpcev Card …, ki jih obrazec privzeto pusti neoznačene), elementi camt.053, ki jih vsebuje vsak izpisek (Stmt/Id, Stmt/Acct/Id/IBAN, Stmt/Bal/…, Ntry/Amt, Ntry/CdtDbtInd, Ntry/Sts, Ntry/BookgDt), ali atributi, ki jih bančni vir PSD2 vrne za posamezno transakcijo. Vnose lahko dodate ali odstranite, da ustrezajo vaši datoteki: uvoznik prebere tudi opcijske elemente camt.053 Ntry/ValDt, Ntry/NtryRef, Ntry/AcctSvcrRef, Ntry/AddtlNtryInf, TxDtls/Refs/EndToEndId, TxDtls/Refs/TxId, TxDtls/RltdPties/Dbtr/Nm, TxDtls/RltdPties/DbtrAcct/Id/IBAN, TxDtls/RltdPties/Cdtr/Nm, TxDtls/RltdPties/CdtrAcct/Id/IBAN, TxDtls/RmtInf/Ustrd in TxDtls/AddtlTxInf.
  • Polje Customer Email v sistemu Stripe lahko vsebuje nastavitev "createPartner": true. V tem primeru uvoz ustvari kupca (poslovnega partnerja tipa fizična oseba, označenega kot kupec) za vsak e-poštni naslov v datoteki, ki še ne obstaja med partnerji. Kot naziv se uporabi Customer Description (ali e-poštni naslov, če je ta prazen), kot naslov pa stolpci Card Address …, če jih datoteka vsebuje. Obstoječi partnerji se iščejo po e-poštnem naslovu, ne glede na velike/male črke. Odgovor vrne število v polju customersCreated.
  • Polje metaFields (velja samo za Stripe) navaja ključe metapodatkov, ki jih nosijo vaša bremenitve. Stripe izvozi vsak ključ kot stolpec <key> (metadata); seznam je proste oblike in je lahko dolg.
  • Polje invoiceItemId (velja samo za Stripe, opcijsko) je artikel v katalogu. Ko je nastavljeno, se vsaka vrstica izdanega računa in dobropisa, ki jo uvoz ustvari, sklicuje na ta artikel (njegovo knjiženje in, če je polje invoiceVatRatePercent prazno, njegovo stopnjo DDV); besedilo vrstice pa še vedno izhaja iz bremenitve.
  • Polje companyMetaField (velja samo za Stripe) določa enega od teh ključev kot oznako podjetja. Ko bremenitev v tem stolpcu vsebuje vrednost true, 1, yes, company, business ali b2b, je zanje ustvarjen kupec poslovni partner tipa pravna oseba namesto fizične osebe.
  • Polje invoiceMetaField (velja samo za Stripe) določa enega od teh ključev, na primer številko naročila, invoiceVatRatePercent pa določa stopnjo DDV za račune, ustvarjene iz njega. Ob uvozu se vsaka vrstica bremenitve in vračila združi glede na vrednost tega ključa:
    • vrednost, ki se ujema z obstoječim izdanim računom – prodajnim naročilom, katerih externalRef je ta vrednost (ecommerce/orders/create, kateri koli kanal), ali računom, katerega fullNumber je ta vrednost – poveže skupino s tem računom;
    • vrednost brez ustreznega računa ustvari novega: partner iz polja Customer Email (ustvarjen, če manjka, podobno kot pri createPartner), ena vrstica na bremenitev (Checkout Line Item Summary ali Description kot besedilo, znesek bremenitve kot cena z vključenim DDV po stopnji invoiceVatRatePercent), datum izdaje = datum prve bremenitve, obravnava DDV pa izhaja iz družbe in države kartice. Račun se izda in knjiži takoj, hkrati pa se zabeleži prodajno naročilo s kanalom stripe in to vrednostjo kot externalRef, tako da kasnejši uvozi izvedejo povezavo namesto ustvarjanja;
    • vsaka bremenitev v skupini se nato uskladi z računom kot plačilo (knjiženje prejetega zneska); vsako vračilo ustvari izdan dobropis k računu za vrnjeni znesek in z njim uskladi vračilo. Rezultati se vrnejo v števcih invoicesCreated, invoicesLinked, creditNotesCreated in paymentsMatched; skupine, ki jih ni bilo mogoče obdelati (ni e-poštnega naslova kupca, mešane valute, povezan račun je še vedno osnutek ali je že v celoti plačan), so navedene v polju warnings in ostanejo kot nove bančne transakcije (new). V isti predeli prav tako ne preslikajte polja Amount na konto v glavni knjigi: bremenitev, usklajena z računom, se ne knjiži dvakrat, neusklajena pa bi se.
  • Imena predolog so enolična znotraj posamezne družbe.
  • Predloge za camt.053 in bančne povezave vsebujejo same možnosti, le da se berejo iz izpiska namesto iz stolpcev sistema Stripe:
    • Ustvarjanje manjkajočih partnerjev: Nastavitev createPartner v vrstici z nazivom dolžnika (TxDtls/RltdPties/Dbtr/Nm, vir debtor.name) ustvari kupca za vsakega neznanega plačnika priliva; v vrstici z nazivom upnika (TxDtls/RltdPties/Cdtr/Nm, vir creditor.name) pa dobavitelja za vsakega neznanega prejemnika odliva. Partnerji se prepoznajo po IBAN-u (shranjenem v partner_bank_accounts), nato pa po natančnem imenu. Nov partner je pravna oseba, če naziv vsebuje pravno obliko (UAB, MB, SIA, GmbH, Ltd, …), sicer pa fizična oseba. Števec se vrne kot customersCreated (uvoz datoteke) ali partnersCreated (sinhronizacija vira).
    • Povezovanje računov po sklicu: Polje invoiceMetaField, nastavljeno na vrstico s podatki o plačilu ali sklicem (TxDtls/RmtInf/Ustrd, TxDtls/RmtInf/Strd/CdtrRefInf/Ref, TxDtls/Refs/EndToEndId; vir remittance_information, reference_number), uskladi vsako novo bančno vrstico, katere sklic, namen ali opis vsebuje številko odprtega izdanega prodajnega računa (priliv) ali knjiženega prejetega nabavnega računa (odliv), ter knjiži plačilo. Ko je IBAN plačnika shranjen pri partnerju ali se ime/šifra plačnika ujema s partnerjevim, mora račun pripadati temu partnerju. Plačilo neznanega plačnika se poveže samo takrat, ko je enako preostanku dolga na računu in številka računa vsebuje predpono serije, tako da se gola številka, kot je znesek, nikoli ne obravnava kot sklic. Plačilo, večje od preostalega zneska, se nikoli ne poveže. Vrstice, ki ne prestanejo teh preverjanj, ostanejo v statusu novih za ročno usklajevanje in so navedene v opozorilih. Z nastavitvijo advanceInvoices: true neusklajeni priliv od znanega partnerja ustvari izdan prejet predujem (vrsta advance) za znesek po stopnji invoiceVatRatePercent ali stopnji artikla invoiceItemId ter z njim uskladi plačilo. Partner mora biti znan, zato označite tudi vrstico dolžnika.
    • Pravila knjiženja glede na transakcijsko kodo: Poleg Ntry/Amt / transaction_amount.amount seznam polj vsebuje vrstice s pravili Ntry/BkTxCd=CHRG, =INTR, =TAXE, Ntry/CdtDbtInd=DBIT, =CRDT (vir: bank_transaction_code=…, credit_debit_indicator=…). Vrstica se knjiži na konto prvega pravila, s katerim se ujema: najprej družina transakcijske kode, nato smer in nazadnje navadna vrstica z zneskom. Vrstice s pravili se ne preverjajo glede na datoteko.
    • Partner za bančne stroške: Nastavitev createPartner v vrstici pravila …=CHRG ustvari dobavitelja, poimenovanega po banki (izpisek Stmt/Acct/Svcr/FinInstnId/Nm, banka povezave ali naziv bančnega računa v glavni knjigi), in knjiži vsak strošek s tem partnerjem.
    • Predloge za bančne povezave se izberejo za posamezen račun vira z ukazom bank/feeds/accounts/configure (v aplikaciji Banka → Povezave), kjer se nastavi tudi syncSchedule (manual, daily, weekly, monthly): API samodejno sinhronizira račune z urnikom, ko preteče njihovo obdobje. Predloge se uporabijo ob vsakem klicu bank/feeds/sync; odgovor sinhronizacije nato poroča tudi o števcu knjiženj (posted), ustvarjenih partnerjih (partnersCreated), povezanih računih (invoicesLinked), ustvarjenih računih (invoicesCreated), usklajenih plačilih (paymentsMatched) in opozorilih (warnings).

Funkciji bank/statements/import namesto parametra format posredujte templateId: vrsta predloge določa razčlenjevalnik, datoteka pa mora vsebovati vsa polja, navedena v predlogi. Če v datoteki manjka katero koli polje, je zavrnjena s kodo HTTP 422 in imeni manjkajočih stolpcev ali elementov. Polja metapodatkov ni obvezno vključiti. Predloge za bančne povezave opisujejo vir PSD2 v živo in se ne uporabljajo za uvoz datotek.

Predloga ISO 20022 bere tudi datoteke MT940: datoteka, ki se začne z {1: ali :20: (ali je poslana z "format": "mt940"), se razčleni kot MT940, pri čemer se na njenih vrsticah uporabijo ujemanje sklicev in pravila knjiženja iz predloge. Preverjanje elementov se za MT940 preskoči, pravila Ntry/BkTxCd=… pa za vrstice MT940 nikoli ne veljajo, ker format MT940 ne vsebuje bančne transakcije kode ISO 20022; namesto tega uporabite pravila Ntry/CdtDbtInd=….

Bančni račun ima natanko eno valuto. Izpisek v drugi valuti se zavrne s kodo HTTP 422 (v datoteki camt.053 z izpiski v več valutah za isti IBAN se uvozi samo izpisek v valuti računa), prav tako pa se zavrne vrstica, poslana na bank/transactions/import z valuto, ki se razlikuje od valute računa.

Vsak denarni tok, proizveden iz polja s kodo konta (accountCode), se ob uvozu knjiži kot en temeljni dokument: priliv v breme konta v glavni knjigi bančnega računa in v korist preslikanega konta; odliv v breme preslikanega konta in v korist konta v glavni knjigi bančnega računa. Zneski se na datum dogodka pretvorijo v osnovno valuto. Bančna transakcija se nato uskladi (matched) s tem temeljnim dokumentom (matchedDocumentType = journal_transaction) in ni več ponujena za usklajevanje z računi. Odgovor vrne število v polju posted. Denarni toki iz nepreslikanih polj ostanejo v statusu novih (new) in se uskladijo z računi kot doslej – na primer, če Fee preslikate na konto stroškov provizij PSP, Amount pa pustite nepreslikan, se bremenitve še naprej usklajujejo s prodajnimi računi.

POST /v1/bank/statements/import
{
  "bankAccountId": "…",
  "templateId": "…",
  "content": "id,Created date (UTC),Amount,…"
}

ISO 20022 camt.053 (odprti bančni XML)

Litovske banke (Swedbank, SEB, Luminor, Šiaulių bankas, …) omogočajo prenos bančnih izpiskov v formatu XML camt.053 prek spletne banke – običajno pod izvozom/prenosom izpiskov v formatu "ISO XML" ali "camt.053". Isti format vračajo tudi vmesniki API za informiranje o računih PSD2.

POST /v1/bank/statements/import
{
  "bankAccountId": "…",
  "format": "camt053",
  "content": "<?xml version=\"1.0\"…>…"
}
  • Datoteka lahko vsebuje več izpiskov; IBAN vsakega izpiska se mora ujemati z IBAN-om bančne računa (izpiski brez IBAN-a ali računi brez njega se sprejmejo takšni, kot so).
  • Sklici vnosov (AcctSvcrRef/NtryRef, z nadomestno vrednostjo zgoščene vrednosti vsebine) postanejo vrednost externalId.
  • Odgovor vrne metapodatke za posamezen izpisek: ID izpiska, obdobje, začetni/končni saldo, število transakcij.
  • Naziv nasprotne stranke, IBAN in namen plačila se za namene usklajevanja izluščijo iz vsakega vnosa.

Plačila v obratni smeri se izvozijo kot pain.001 prek vmesnika bank/payments/export.

Revolut Business CSV

Prenesite izpisek transakcij računa Revolut Business kot datoteko CSV in jo uvozite s privzeto predlogo Revolut Business (templateId: "builtin-revolut"). Vsaka družba ima to predlogo na voljo brez predhodnega ustvarjanja: bank/import-templates/list-builtin jo vrne na seznamu, bank/import-templates/get jo pridobi, medtem ko klica bank/import-templates/update in bank/import-templates/delete vrneta napako HTTP 400. V aplikaciji je prikazana na vrhu pod menijem Banka → Predloge za uvoz; ob odprtju so vidne njene nastavitve, shranjevanje pa ustvari lastno predlogo družbe, ki jo lahko poljubno spreminjate.

POST /v1/bank/statements/import
{
  "bankAccountId": "…",
  "templateId": "builtin-revolut",
  "content": "Date started (UTC),Date completed (UTC),ID,Type,State,…"
}
  • Uvozijo se samo vrstice, kjer je State enak COMPLETED. Druge vrstice (na primer PENDING) se izpustijo in prištejejo k opozorilom (warnings); uvozijo se ob kasnejšem uvozu datoteke, v kateri so zaključene.
  • Vsaka vrstica postane bančna transakcija z datumom iz polja Date completed (UTC), zneskom iz Total amount, valuto iz Payment currency, poljem ID kot externalId in Description kot opisom.
  • Nasprotna stranka pri odlivanju denarja sta polji Beneficiary name in Beneficiary IBAN; pri plačilu s kartico brez prejemnika pa trgovec v polju Description. Nasprotna stranka pri prilivanju denarja sta Sender name in Sender account.
  • Vrstice so združene po računu in valuti. Stolpec International account number se mora ujemati z IBAN-om bančnega računa, uvozijo pa se samo vrstice v valuti bančnega računa.
  • Uvoznik za vsako vrstico preveri, ali saldo prejšnje vrstice, povečan za Total amount, ustreza vrednosti Balance, ter vsa neskladja navede v opozorilih (warnings).
  • Datoteka mora vsebovati stolpce Date completed (UTC), ID, Type, State, Description, Payment currency, Total amount, Reference, Sender name in Beneficiary name.

Ob vsakem uvozu vgrajena predloga izvede naslednje:

  • ustvari kupca za vsakega neznanega pošiljatelja priliva ter dobavitelja za vsakega neznanega prejemnika ali kartičnega trgovca odliva, kot je opisano v poglavju Ustvarjanje manjkajočih partnerjev zgoraj;

  • uskladi vsako vrstico, katere sklic (Reference) ali opis (Description) vsebuje številko odprtega prodajnega ali nabavnega računa, ter knjiži plačilo ob upoštevanju preverjanj iz poglavja Povezovanje računov po sklicu zgoraj;

  • knjiži vrstice, ki se niso unesle z nobenim računom, glede na njihov Type na konto pravila knjiženja:

    Type Pravilo knjiženja Privzeti konto Romunski kontni načrt Knjiženje
    FEE bank.fees 6800 627 v breme konta pravila, v korist konta v glavni knjigi bančnega računa; partner: dobavitelj, poimenovan po bančnem računu
    CARD_PAYMENT bank.cardPayments 6209 628 v breme konta pravila, v korist konta v glavni knjigi bančnega računa, brez DDV
    TOPUP bank.topUps 3010 1012 v breme konta v glavni knjigi bančnega računa, v korist konta pravila

    Vrstice drugih vrst, kot je npr. TRANSFER, ostanejo v statusu new za ročno usklajevanje.

Konte lahko spremenite prek vmesnika ledger/posting-rules/update; vgrajena predloga bo nove konte začela uporabljati pri naslednjem uvozu. Pravila knjiženja ni mogoče izklopiti: če želite kartična plačila ali polog sredstev uvoziti brez knjiženja, ustvarite predlogo družbe vrste revolut brez vrstic Type=CARD_PAYMENT ali Type=TOPUP in uvoz izvedite z njo. Kartično plačilo, knjiženo na ta način, se kasneje ne uskladi z dobaviteljevim računom, ko je ta registriran; knjižite le enega od obeh dokazil, ne obeh.

Predloga družbe vrste revolut uporablja iste stolpce in lahko knjiži vrstice glede na vrsto prek vrstic pravil Type=FEE, Type=CARD_PAYMENT, Type=TRANSFER in Type=TOPUP. Uvoz s parametrom "format": "revolut-csv" brez predloge uvozi vrstice brez katere koli od teh stopenj.

Stripe CSV

Izvozite podatke iz nadzorne plošče Stripe – uporabno je katerokoli poročilo:

  • Reports → Balance → Itemized balance change from activity (priporočeno): stolpci balance_transaction_id, created_utc, currency, gross, fee, net, reporting_category, description.
  • Payments → Export: stolpci id, Created (UTC), Amount, Fee, Currency, Description, Customer Description.
POST /v1/bank/statements/import
{
  "bankAccountId": "…",
  "format": "stripe-csv",
  "content": "balance_transaction_id,created_utc,currency,gross,fee,net,…"
}

Za Stripe ustvarite namenski bančni račun (npr. z nazivom "Stripe", konto glavne knjige 2710 ali lastni podkonto) – saldo sistema Stripe deluje kot bančni račun: prilivajo se bremenitve, odštevajo se provizije, izplačila pa prenašajo sredstva na vaš pravi bančni račun.

Vedenje pri uvozu:

  • Vsaka transakcija salda postane ena bančna transakcija za bruto znesek (externalId = ID transakcije salda).
  • Provizija, ki ni enaka nič, postane druga transakcija z nasprotnim predznakom (externalId = <id>:fee, nasprotna stranka "Stripe"), kar omogoča ločeno usklajevanje/knjiženje provizij kot stroškov ločeno od prihodkov. Provizije, vrnjene pri vračilih, se uvozijo kot pozitivni zneski.
  • Vrstice izplačil (Payout) se uvozijo kot posamezne negativne transakcije; uskladite jih z ustreznimi prilivi na izpisu vašega pravega bančnega računa.
  • Vrstice z zneskom nič se preskočijo; datum se prevzame iz polja created_utc (UTC).
  • Vrstice izvoza plačil, ki niso premaknile denarja, se preskočijo: Captured = false (avtorizacije/zakasnjene zajezitve) ter statusi Failed/Canceled.
  • Znesek Amount Refunded, ki ni enak nič, postane tretja, negativna transakcija (externalId = <id>:refund) z datumom iz polja Refunded date (UTC), s čimer so delna in celotna vračila, vključena v plačilne vrstice, ohranjena.

Usklajevanje poravnav PSP (poročila o izplačilih Stripe)

Za razbijanje skupnega zneska izplačila na pripadajoča naročila, vračila, provizije in vračila bremenitev (chargebacks) uporabite končne točke za poravnave namesto navadnega uvoza izpiskov. Podprta sta dva izvoza iz sistema Stripe (samodejno prepoznavanje):

  • Reports → Payouts → Payout reconciliation, itemized (vrste poročil payout_reconciliation.itemized.* ali payout_reconciliation.by_id.itemized.*) – natančno, ena vrstica na transakcijo salda; priporočeno za žive račune.
  • Payments → Export (unified payments) – izvoz na ravni bremenititev; deluje v testnem/razvojnem načinu, kjer usklajevanje poravnav ni na voljo. Zajete bremenititve so združene po ID-ju izplačila v stolpcu Transfer; nezajete/neuspešne vrstice se preskočijo (skippedNotSettled); nenielni Amount Refunded postane sintetična vrstica vračila v seriji izplačil bremenitve – kar je približek, saj je bilo vračilo morda dejansko poravnano v kasnejšem izplačilu. Sklici za ujemanje izvirajo iz ID-ja bremenitve, PaymentIntent ID, Invoice Number, Client Reference ID in vseh stolpcev … (metadata) (npr. številka naročila v metapodatkih).

Ena datoteka CSV lahko zajema več izplačil. Stripe prenaša postavkovno poročilo v obliki ene datoteke na odsek (…_charge_…, …_refund_…, …_fee_…); uvozite vse – vrstice za že uvoženo izplačilo se združijo v obstoječo serijo (zabeleženo v števcu updated), če ta še ni bila knjižena, skupne vrednosti serije pa se ponovno izračunajo.

POST /v1/bank/settlements/import
{
  "bankAccountId": "…",
  "provider": "stripe",
  "content": "balance_transaction_id,created_utc,…,reporting_category,…,automatic_payout_id,…"
}

Vedenje pri uvozu:

  • Vrstice so združene prek stolpca automatic_payout_id v serije poravnav – ena serija na izplačilo, z bruto/provizijskimi/neto seštevki (vsota stolpca net = znesek, ki prispije na vaš bančni račun). Ponovni uvoz izplačila se preskoči (števec skipped). Vrstice, ki še niso dodeljene izplačilu, in same vrstice payout se preskočijo in štejejo ločeno.
  • Vsaka vrstica bremenitve, vračila ali spora se samodejno uskladi s prodajnim računom z uporabo naslednjih kriterijev v tem vrstnem redu: externalRef e-komerc naročila (katera koli vrednost iz order_id, payment_intent_id, source_id, charge_id ali kateregakoli stolpca *_metadata[...]), fullNumber računa, ki se pojavi v teh stolpcih, ter – za vračila in spore – charge_id predhodno usklajene bremenitve (iz iste datoteke ali prejšnjih uvozov).
  • Stanje preverite s klicem bank/settlements/list / bank/settlements/get; preostanke odpravite s klicem bank/settlements/match { lineId, invoiceId } (ali z invoiceId: null za preklic uskladitve).

Klic POST /v1/bank/settlements/post { id, date?, commissionPercent? } knjiži celotno serijo kot en uravnotežen temeljni dokument in poravna usklajene račune (paidAmount/paymentStatus, spletni kljukici sale_invoice.paid):

  • V breme konta glavne knjige bančnega računa za neto izplačilo; v breme provizij PSP (settlements.fees, privzeto 6800) za zadržane provizije in vrstice provizij.
  • V korist terjatev do kupcev za vsako usklajeno bremenitev; vračila in spori to obrnejo. Uporaba je omejena na preostali znesek posameznega računa – vsak presežek se ob opozorilu knjiži na prehodni konto.
  • Neusklajene bremenitve: z nastavljenim parametrom commissionPercent se razdelijo na prihodke od provizij (settlements.commissionRevenue, privzeto 5001) in obveznosti do prodajalcev (settlements.sellerPayable, privzeto 4499) – kar ustreza tržničnemu toku (marketplace), kjer zbrani denar večinoma pripada prodajalcem. Brez tega parametra se uvrstijo na prehodni konto settlements.suspense (privzeto 4440, prejeti predujmi).
  • Vrstice platform_earning (provizije aplikacije Stripe Connect) se knjižijo med prihodke od provizij; vrstice transfer (izplačila povezanim prodajalcem) zmanjšujejo obveznosti do prodajalcev.
  • Vse štiri konte je mogoče preglasiti na ravni družbe prek pravil knjiženja (ledger/posting-rules).
  • Vrstica, katere bremenitev, provizija ali vračilo je bilo že uvoženo na drug bančni račun prek izvoza plačil Stripe (bank/statements/import), se ne knjiži med provizije, terjatve ali prehodne postavke. Njen neto znesek (net) se v korist knjiži na konto v glavni knjigi tistega bančnega računa, tako da se bančni račun Stripe čisti izplačilo za izplačilom. Vrednost summary.clearedAmount predstavlja skupni znesek, prenešen na ta način; vrstica, katere znesek se razlikuje od stanja na tistem računu, je imensko navedena v opozorilih (warnings). Če ni ničesar več za knjiženje, se serija knjiži z vrednostjo journalTransactionId enako null.

Klica bank/settlements/list in /get vračata za vsako serijo vrednosti clearedNet, clearingDifference (postavke izplačil minus zneski, ki jih zanje drži drug bančni račun; nič, ko se ujemata) in clearingOpenCount (postavke z razliko ali neknjiženim gibanjem); klic /get vrača enake podatke na posamezno vrstico kot clearingBankAccountId, clearingBooked, clearingDifference in clearingUnposted. Vrstice vračil posamezne bremenitve se primerjajo skupaj, ker izvoz plačil vsebuje le skupni vračani znesek. Izvoz plačil Stripe, uvožen potem, ko je bilo njegovo izplačilo že knjiženo, preskoči gibanja tega izplačila in ga navede v opozorilih (warnings).

DDV od same provizije se zaračuna posebej (izdati je treba račun za provizijo prodajalcu); razdelitev zgolj razporeja zbrana denarna sredstva.

Izplačila v drugi valuti

Temeljni dokument se vedno izpiše v osnovni valuti družbe, vendar se izplačilo v drugi valuti knjiži samodejno – ročni vnos ni potreben:

  • Serija se pretvori po tečaju na datum knjiženja (date, z nadomestitvijo z datumom izplačila in nato z današnjim dnem). Tečaj je lastni tečaj družbe za to valuto (reference/exchange-rates/set), če je vsaj tako svež kot uradni tečaj, sicer pa se uporabi zadnji uradni tečaj na ali pred tem datumom. Če na ali pred tem datumom ni tečaja, klic vrne napako 422 in navede klic reference/exchange-rates/sync.
  • Vsak konto se pretvori po tečaju serije, razen terjatev do kupcev, ki se razbremenijo po tečaju fxRate, po katerem je bil posamezni račun izdan. Presežek med obema tečajema se knjiži na bank.fxGain (privzeto 5803) ali bank.fxLoss (privzeto 6803) kot ugotovljena tečajna razlika, kar zagotavlja, da je temeljni dokument še vedno uravnotežen.
  • Odgovor summary vrne uporabljeni tečaj fxRate in nastalo tečajno razliko exchangeDifference, serija pa ohrani tečaj, po katerem je bila knjižena. Usklajeni račun, katerega valuta se razlikuje od valute serije, se ne poravna: njegov znesek se ob opozorilu prenese na prehodni konto.
  • Ena omejitev uvoza ostaja: posamezno izplačilo, katerega vrstice mešajo več valut, se zavrne s kodo 422, prav tako pa se zavrne ponovni uvoz, katerega valuta se razlikuje od serije, ki je že shranjena za to izplačilo.

Ročni / prilagojeni viri

Vse ostalo je mogoče poslati kot navaden JSON:

POST /v1/bank/transactions/import
{
  "bankAccountId": "…",
  "transactions": [
    { "date": "2026-07-01", "amount": "-25.00", "currency": "EUR",
      "counterpartyName": "…", "description": "…", "externalId": "unique-ref-1" }
  ]
}

Zagotovite stabilen identifikator externalId za vsako transakcijo, da ohranite ponovljivost uvozov (idempotentnost).