Nordlet

← Dokumentacija / Vodiči

Uvoz bankovnih i platnih transakcija

camt.053 izvodi, Stripe CSV, usklađivanje naplata s PSP-om i prilagođeni JSON izvori.

Svi uvozi stižu kao bankovne transakcije na bankovni račun (bank/accounts/create). Transakcije sadrže externalId; ponovni uvoz iste datoteke je siguran - retci čiji (bankAccountId, externalId) već postoje preskaču se i evidentiraju u brojaču skipped. uvezeni uvozi započinju u statusu new i knjiže se u glavnu knjigu tek kada su upareni (bank/transactions/match, uz bank/transactions/suggest-matches za kandidate).

Web aplikacija prikazuje iste uvoze pod Banka → Uvoz datoteke (prijenos datoteke, odabir predloška).

Pogrešno uparivanje poništava se s bank/transactions/unmatch (Poništi uparivanje pod Banka → Transakcije). Proknjižene stavke se nikada ne uređuju niti brišu: uplata uparena s računom, ili stavka koju je predložak uvoza proknjižio na račun, dobiva storno temeljnicu sa svim stavkama na suprotnoj strani, s datumom date (zadano: danas, i nikada prije izvornog knjiženja). Plaćeni iznos i status plaćanja računa vraćaju se natrag za iznos te bankovne stavke. Stavka povezana s isplatom davatelja usluge naplate (PSP) samo se odspaja jer knjiženje isplate pripada seriji. Stavka se vraća u status new i može se ponovno upariti. Datum storniranja mora pasti u otvoreno računovodstveno razdoblje.

Predlošci uvoza

Predložak uvoza imenuje izvor podataka, navodi polja koja izvor donosi i povezuje polja koja nose novac s kontima glavne knjige. Predlošcima se upravlja pod Banka → Predlošci uvoza i putem 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"]
}
  • type je jedan od sljedećih: stripe, iso20022, bank_connection ili revolut.
  • Svako polje ima name i opcionalni accountCode. Samo polja koja nose novac prihvaćaju konto: Stripe Amount, Fee i Amount Refunded; camt.053 Ntry/Amt; bankovni izvor transaction_amount.amount. Konto mora postojati u kontnom planu (kreirajte ga s ledger/accounts/create).
  • Polje fields se može izostaviti; tada se postavlja na zadani popis polja tog tipa: nazivi stupaca datoteke Stripe Payments → Export (bez 19 stupaca Card …, koje obrazac također prema zadanim postavkama ostavlja neoznačenima), camt.053 elementi koje svaki izvod nosi (Stmt/Id, Stmt/Acct/Id/IBAN, Stmt/Bal/…, Ntry/Amt, Ntry/CdtDbtInd, Ntry/Sts, Ntry/BookgDt), ili atributi koje PSD2 bankovni izvor vraća po transakciji. Dodajte ili uklonite unose kako bi odgovarali vašoj datoteci: uvoznik također čita opcionalne camt.053 elemente 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 i TxDtls/AddtlTxInf.
  • Polje Stripe Customer Email može nositi "createPartner": true. Uvoz tada kreira kupca (partnera tipa fizička osoba, označenog kao kupac) za svaku e-adresa u datoteci koju nijedan postojeći partner nema, koristeći Customer Description kao naziv (e-adresu kada je prazna) i stupce Card Address … kao adresu kada ih datoteka sadrži. Postojeći partneri se prepoznaju po e-adresi, neovisno o velikim i malim slovima. Odgovor vraća broj u customersCreated.
  • metaFields (samo za Stripe) navodi ključeve metapodataka koje vaše naplate nose. Stripe izvozi svaki ključ kao stupac <key> (metadata); popis je slobodnog formata i može biti dugačak.
  • invoiceItemId (samo za Stripe, opcionalno) je stavka kataloga. Kada je postavljeno, svaki račun i stavka odobrenja koju uvoz kreira upućuje na tu stavku (njezino knjiženje i, kada je invoiceVatRatePercent prazan, njezinu stopu PDV-a); tekst stavke i dalje dolazi iz naplate.
  • companyMetaField (samo za Stripe) imenuje jedan od tih ključeva kao oznaku tvrtke. Kada naplata nosi true, 1, yes, company, business ili b2b u tom stupcu, kupac kreiran za nju je partner tipa pravna osoba umjesto fizičke osobe.
  • invoiceMetaField (samo za Stripe) imenuje jedan od tih ključeva, na primjer broj narudžbe, a invoiceVatRatePercent stopu PDV-a za račune kreirane iz njega. Pri uvozu se svaki redak naplate i povrata grupira prema vrijednosti tog ključa:
    • vrijednost koja odgovara postojećem izdanom računu - prodajnoj narudžbi čiji je externalRef ta vrijednost (ecommerce/orders/create, bilo koji kanal) ili računu čiji je fullNumber ta vrijednost - povezuje grupu s tim računom;
    • vrijednost bez računa kreira novi: partner iz Customer Email (kreiran ako nedostaje, kao za createPartner), jedna stavka po naplati (Checkout Line Item Summary ili Description kao tekst, iznos naplate kao cijena s uključenim PDV-om pri invoiceVatRatePercent), datum izdavanja = prvi datum naplate, porezni tretman iz tvrtke i zemlje kartice. Račun se izdaje i knjiži odjednom, a prodajna narudžba s kanalom stripe i tom vrijednošću kao externalRef se bilježi tako da kasniji uvozi povezuju umjesto da kreiraju;
    • svaka naplata u grupi se zatim uparuje s računom kao uplata (knjiženje primitka); svaki povrat kreira izdano odobrenje tereteći račun za vraćeni iznos i uparuje povrat s njim. Brojevi se vraćaju kao invoicesCreated, invoicesLinked, creditNotesCreated i paymentsMatched; grupe koje se nisu mogle obraditi (nema e-adrese kupca, miješane valute, povezani račun koji je još uvijek u nacrtu ili je već u potpunosti plaćen) navedene su u warnings i ostavljene kao bankovne transakcije u statusu new. Nemojte također mapirati Amount na konto glavne knjige u istom predlošku: naplata uparena s računom ne knjiži se drugi put, ali bi neuparena bila proknjižena.
  • Nazivi predložaka jedinstveni su po tvrtki.
  • camt.053 predlošci i predlošci bankovnih veza nose iste opcije, čitane iz izvoda umjesto Stripe stupaca:
    • Kreiranje partnera koji nedostaju: createPartner u retku naziva dužnika (TxDtls/RltdPties/Dbtr/Nm, izvor debtor.name) kreira kupca za svakog nepoznatog platitelja priljeva novca; u retku naziva vjerovnika (TxDtls/RltdPties/Cdtr/Nm, izvor creditor.name) dobavljača za svakog nepoznatog primatelja odljeva novca. Partneri se prepoznaju po IBAN-u (pohranjenom u partner_bank_accounts), zatim po točnom nazivu; novi partner je pravna osoba kada naziv nosi pravni oblik (d.o.o., j.d.o.o., k.d., d.d., gmbh, ltd, …), inače fizička osoba. Broj se vraća kao customersCreated (uvoz datoteke) ili partnersCreated (sinkronizacija izvora).
    • Povezivanje računa prema pozivu na broj: invoiceMetaField postavljen na redak opisa plaćanja ili poziva na broj (TxDtls/RmtInf/Ustrd, TxDtls/RmtInf/Strd/CdtrRefInf/Ref, TxDtls/Refs/EndToEndId; izvor remittance_information, reference_number) uparuje svaki novi bankovni redak čiji poziv na broj, opis plaćanja ili opis sadrži broj otvorenog izdanog računa (priljev novca) ili evidentiranog ulaznog računa (odljev novca), te knjiži uplatu. Kada je IBAN platitelja spremljen kod partnera, ili je naziv platitelja jednak nazivu ili šifri partnera, račun mora pripadati tom partneru. Uplata od nepoznatog platitelja povezuje se samo kada je jednaka preostalom saldu računa i kada broj računa nosi prefiks svoje serije, tako da se gol broj poput iznosa nikada ne uzima kao poziv na broj. Uplata veća od preostalog salda nikada se ne povezuje. Redci koji ne prođu ove provjere ostaju novi za ručno uparivanje i navedeni su u upozorenjima. Uz advanceInvoices: true neupareni priljev od poznatog partnera kreira izadani predujam (tip advance) za iznos pri invoiceVatRatePercent ili stopi invoiceItemId i uparuje uplatu s njim; partner mora biti poznat, stoga označite i redak dužnika.
    • Pravila knjiženja prema šifri transakcije: osim Ntry/Amt / transaction_amount.amount, popis polja ima retke pravila Ntry/BkTxCd=CHRG, =INTR, =TAXE, Ntry/CdtDbtInd=DBIT, =CRDT (izvor: bank_transaction_code=…, credit_debit_indicator=…). Redak se knjiži na konto prvog pravila s kojim se podudara: njegova obitelj šifri bankovne transakcije, zatim njegov smjer, pa običan redak iznosa. Retci pravila ne provjeravaju se u odnosu na datoteku.
    • Partner za bankovne troškove: createPartner u retku pravila …=CHRG kreira dobavljača nazvanog po banci (Stmt/Acct/Svcr/FinInstnId/Nm, ili banci veze, ili nazivu bankovnog računa u glavnoj knjizi) i knjiži svaku naknadu s tim partnerom.
    • Predlošci bankovnih veza odabiru se po računu izvora s bank/feeds/accounts/configure (Banka → Veze u aplikaciji), što također postavlja syncSchedule (manual, daily, weekly, monthly): API samostalno sinkronizira račune s rasporedom nakon što im istekne razdoblje. Predlošci se primjenjuju pri svakom bank/feeds/sync; odgovor sinkronizacije tada također izvještava posted, partnersCreated, invoicesLinked, invoicesCreated, paymentsMatched i warnings.

Proslijedite templateId u bank/statements/import umjesto format: tip predloška bira parsirni mehanizam, a datoteka mora sadržavati svako polje navedeno u predlošku - datoteka kojoj nedostaje bilo koje od njih odbija se s HTTP 422 i nazivima stupaca ili elemenata koji nedostaju. Polja metapodataka nisu obavezna biti prisutna. Predlošci bankovnih veza opisuju PSD2 izvor uživo i ne mogu se koristiti za uvoz datoteka.

ISO 20022 predložak također čita MT940 datoteke: datoteka koja počinje s {1: ili :20: (ili se šalje s "format": "mt940") parsira se kao MT940, a usklađivanje poziva na broj i pravila knjiženja predloška primjenjuju se na njezine retke. Provjera elemenata preskače se za MT940, a pravila Ntry/BkTxCd=… nikada se ne primjenjuju na MT940 retke jer MT940 ne nosi ISO 20022 šifru bankovne transakcije; umjesto toga koristite pravila Ntry/CdtDbtInd=….

Bankovni račun drži jednu valutu. Izvod u drugoj valuti odbija se s HTTP 422 (u camt.053 datoteci s izvodima u nekoliko valuta za isti IBAN, uvozi se samo izvod u valuti računa), kao i redak poslan na bank/transactions/import s valutom koja nije valutom računa.

Svaki novčani tijek proizveden iz polja koje ima accountCode knjiži se u trenutku uvoza kao jedna temeljnica: priljev novca zadužuje konto glavne knjige bankovnog računa i odobrava mapirani konto; odljev novca zadužuje mapirani konto i odobrava konto glavne knjige bankovnog računa. Iznosi se pretvaraju u izvornu valutu po tečaju na datum tijeka. Bankovna transakcija se zatim uparuje s tom temeljnicom (matchedDocumentType = journal_transaction) i više se ne nudi za uparivanje računa. Odgovor vraća broj u posted. Tijekovi iz nemapiranih polja ostaju novi (new) i uparuju se s računima kao i prije - na primjer, mapirajte Fee na konto troškova PSP naknada i ostavite Amount nemapiranim kako bi se naplate i dalje uparivale s izdanim računima.

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

ISO 20022 camt.053 (XML otvorenog bankarstva)

Litavske banke (Swedbank, SEB, Luminor, Šiaulių bankas, …) omogućuju preuzimanje izvoda po računu u obliku ISO 20022 camt.053 XML-a iz internetskog bankarstva - obično pod izvozom/preuzimanjem izvoda, format "ISO XML" ili "camt.053". Isti format vraćaju API-ji za informacije o računima prema PSD2.

POST /v1/bank/statements/import
{
  "bankAccountId": "…",
  "format": "camt053",
  "content": "<?xml version=\"1.0\"…>…"
}
  • Datoteka može sadržavati nekoliko izvoda; IBAN svakog izvoda mora odgovarati IBAN-u bankovnog računa (izvodi bez IBAN-a, ili računi bez njega, prihvaćaju se takvi kakvi jesu).
  • Oznake stavki (AcctSvcrRef/NtryRef, uz rezervnu opciju hash sažetka sadržaja) postaju externalId.
  • Odgovor ponavlja metapodatke po izvodu: ID izvoda, razdoblje, početni/zaključni saldo, broj transakcija.
  • Naziv druge ugovorne strane, IBAN i svrha plaćanja izdvajaju se po stavci radi uparivanja.

Plaćanja u suprotnom smjeru izvoze se kao pain.001 putem bank/payments/export.

Revolut Business CSV

Preuzmite izvod transakcija Revolut Business računa kao CSV i uvezite ga s ugrađenim predloškom Revolut Business (templateId: "builtin-revolut"). Svaka tvrtka ima ovaj predložak bez potrebe za njegovim kreiranjem: bank/import-templates/list-builtin ga popisu, bank/import-templates/get ga vraća, a bank/import-templates/update i bank/import-templates/delete odbijaju ga s HTTP 400. U aplikaciji je naveden prvi pod Banka → Predlošci uvoza; njegovo otvaranje prikazuje postavke, a spremanje kreira vaš vlastiti predložak tvrtke koji možete promijeniti.

POST /v1/bank/statements/import
{
  "bankAccountId": "…",
  "templateId": "builtin-revolut",
  "content": "Date started (UTC),Date completed (UTC),ID,Type,State,…"
}
  • Uvoze se samo retci sa State = COMPLETED. Ostali retci (na primjer PENDING) se izostavljaju i broje u warnings; uvoze se kasnijim uvozom datoteke u kojoj su dovršeni.
  • Svaki redak postaje bankovna transakcija s datumom iz Date completed (UTC), iznosom iz Total amount, valutom iz Payment currency, ID-jem kao externalId i Description kao opisom.
  • Druga ugovorna strana kod odljeva novca je Beneficiary name i Beneficiary IBAN; za plaćanje karticom bez primatelja, trgovac u Description. Druga ugovorna strana kod priljeva novca je Sender name i Sender account.
  • Retci su grupirani po računu i valuti. International account number mora odgovarati IBAN-u bankovnog računa, i uvoze se samo retci u valuti bankovnog računa.
  • Za svaki redak uvoznik provjerava je li saldo prethodnog retka uvećan za Total amount jednak Balance, te navodi u warnings svaki redak u kojem to nije slučaj.
  • Datoteka mora sadržavati stupce Date completed (UTC), ID, Type, State, Description, Payment currency, Total amount, Reference, Sender name i Beneficiary name.

Prilikom svakog uvoza ugrađeni predložak:

  • kreira kupca za svakog nepoznatog pošiljatelja priljeva novca, i dobavljača za svakog nepoznatog primatelja ili kartičnog trgovca odljeva novca, kako je opisano gore pod Kreiranje partnera koji nedostaju;

  • uparuje svaki redak čiji Reference ili Description sadrži broj otvorenog izdanog ili ulaznog računa i knjiži uplatu, uz provjere opisane gore pod Povezivanje računa prema pozivu na broj;

  • knjiži retke koje nijedan račun nije upario prema njihovom Type, na konto pravila knjiženja:

    Type Pravilo knjiženja Zadani konto Rumunjski kontni plan Knjiženje
    FEE bank.fees 6800 627 zaduži konto pravila, odobri konto glavne knjige bankovnog računa; partner: dobavljač nazvan po bankovnom računu
    CARD_PAYMENT bank.cardPayments 6209 628 zaduži konto pravila, odobri konto glavne knjige bankovnog računa, bez PDV-a
    TOPUP bank.topUps 3010 1012 zaduži konto glavne knjige bankovnog računa, odobri konto pravila

    Retci drugih vrsta, kao što je TRANSFER, ostaju u statusu new radi uparivanja.

Promijenite konta s ledger/posting-rules/update; ugrađeni predložak koristi nove konta od sljedećeg uvoza. Pravilo knjiženja ne može se isključiti: za uvoz kartičnih plaćanja ili nadopuna bez njihovog knjiženja, kreirajte predložak tvrtke tipa revolut bez retka Type=CARD_PAYMENT ili Type=TOPUP i uvezite s njim. Kartično plaćanje proknjiženo na ovaj način ne uparuje se s računom dobavljača kada se taj račun naknadno evidentira; proknjižite jedno od to dvoje, ne oboje.

Predložak tvrtke tipa revolut koristi iste stupce i može knjižiti retke prema vrsti s retcima pravila Type=FEE, Type=CARD_PAYMENT, Type=TRANSFER i Type=TOPUP. Uvoz s "format": "revolut-csv" i bez predloška uvozi retke bez ikakvih ovih koraka.

Stripe CSV

Izvoz s nadzorne ploče Stripe - funkcionira bilo koje izvješće:

  • Reports → Balance → Itemized balance change from activity (preporučeno): stupci balance_transaction_id, created_utc, currency, gross, fee, net, reporting_category, description.
  • Payments → Export: stupci 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,…"
}

Kreirajte namjenski bankovni račun za Stripe (npr. naziv "Stripe", konto glavne knjige 2710 ili vlastiti podračun) - saldo na Stripeu ponaša se poput bankovnog računa: naplate pristižu, naknade se odbijaju, isplate prenose saldo na vaš pravi bankovni račun.

Ponašanje pri uvozu:

  • Svaka transakcija salda postaje jedna bankovna transakcija za bruto iznos (externalId = ID transakcije salda).
  • Nenulta naknada (fee) postaje druga transakcija suprotnog predznaka (externalId = <id>:fee, druga ugovorna strana "Stripe") - tako da se naknade mogu upariti/proknjižiti kao troškovi odvojeno od prihoda. Naknade vraćene pri povratima dolaze kao pozitivni iznosi.
  • Retci isplate (Payout) uvoze se kao pojedinačne negativne transakcije; uparite ih s odgovarajućom dolaznom transakcijom na izvodu vašeg pravog bankovnog računa.
  • Retci s nultim iznosom se preskaču; datum se uzima iz created_utc (UTC).
  • Retci izvoza plaćanja koji nisu pomaknuli novac se preskaču: Captured = false (autorizacije/odgođena knjiženja) i Status Failed/Canceled.
  • Nenulti vraćeni iznos (Amount Refunded) postaje treća, negativna transakcija (externalId = <id>:refund) s datumom Refunded date (UTC) - tako da djelomični i potpuni povrati ugrađeni u retke plaćanja nisu izgubljeni.

Usklađivanje isplata s PSP-om (Stripe izvješća o isplatama)

Za rastavljanje isplate u paušalnom iznosu na njezine temeljne narudžbe, povrate, naknade i povrate sredstava (chargeback), koristite krajnje točke (endpoints) nagodbi umjesto običnog uvoza izvoda. Prihvaćaju se dva Stripe izvoza (detektiraju se automatski):

  • Reports → Payouts → Payout reconciliation, itemized (vrste izvješća payout_reconciliation.itemized.* ili payout_reconciliation.by_id.itemized.*) - točno, jedan redak po transakciji salda; preporučeno na aktivnim računima.
  • Payments → Export (unified payments) - izvoz na razini naplate; radi u testnom / sandbox načinu rada gdje usklađivanje isplata nije dostupno. Naplaćene naplate grupirane su prema ID-ju isplate u stupcu Transfer; nenaplati/neuspjeli retci se preskaču (skippedNotSettled); nenulti Amount Refunded postaje sintetički redak povrata u seriji isplate naplate - aproksimacija, budući da se povrat možda doista namirio u kasnijoj isplati. Pozivi na broj za uparivanje dolaze iz ID-ja naplate, PaymentIntent ID, Invoice Number, Client Reference ID i svakog stupca … (metadata) (npr. broj narudžbe u metapodacima).

Jedan CSV može obuhvatiti mnoge isplate. Stripe preuzima stavčasto izvješće jedna datoteka po odsječku (…_charge_…, …_refund_…, …_fee_…); uvezite ih sve - retci za već uvezenu isplatu spajaju se u postojeću seriju (izvješteno u brojaču updated) sve dok još nije proknjižena, a ukupni iznosi serije se ponovno izračunavaju.

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

Ponašanje pri uvozu:

  • Retci su grupirani prema automatic_payout_id u serije nagodbi - jedna serija po isplati, s ukupnim bruto/naknada/neto iznosima (zbroj retka net = iznos koji sjeda na vašu banku). Ponovni uvoz isplate se preskače (brojač skipped). Retci koji još nisu dodijeljeni isplati i sami retci isplate payout se preskaču i broje zasebno.
  • Svaki redak naplate/povrata/spora automatski se uparuje s izdanim računom koristeći redom: externalRef e-commerce narudžbe (bilo koja vrijednost iz order_id, payment_intent_id, source_id, charge_id ili bilo kojeg *_metadata[...] stupca), fullNumber računa koji se pojavljuje u tim stupcima, i - za povrate i povrate sredstava - charge_id prethodno uparene naplate (ista datoteka ili raniji uvozi).
  • Pregledajte s bank/settlements/list / bank/settlements/get; ispravite ostatke s bank/settlements/match { lineId, invoiceId } (ili invoiceId: null za poništenje uparivanja).

POST /v1/bank/settlements/post { id, date?, commissionPercent? } knjiži cijelu seriju kao jednu uravnoteženu temeljnicu i zatvara uparene račune (paidAmount/paymentStatus, webhooks sale_invoice.paid):

  • Zadužite glavni konto bankovnog računa za neto isplatu; zadužite PSP naknade (settlements.fees, zadano
    1. za zadržane naknade i retke naknada.
  • Odobrite potraživanja od kupaca po uparivoj naplati; povrati i sporovi to poništavaju. Primjena je ograničena na preostali iznos svakog računa - svaki višak završava na prijelaznom kontu uz upozorenje.
  • Neuparene naplate: s postavljenim commissionPercent one se dijele na prihod od provizije (settlements.commissionRevenue, zadano 5001) i obvezu prema prodavatelju (settlements.sellerPayable, zadano 4499) - tržišni model (marketplace) gdje prikupljeni novac uglavnom pripada prodavateljima. Bez toga, parkiraju se na settlements.suspense (zadano 4440, primljeni predujmovi).
  • Retci platform_earning (naknade aplikacije Stripe Connect) knjiže se u prihod od provizije; retci transfer (isplate povezanim prodavateljima) smanjuju obvezu prema prodavatelju.
  • Sva četiri konta mogu se nadjačati po tvrtki putem pravila knjiženja (ledger/posting-rules).
  • Stavka čija je naplata, naknada ili povrat već uvezena na drugi bankovni račun iz izvoza Stripe plaćanja (bank/statements/import) ne knjiži se na naknade, potraživanja ili prijelazni konto. Njezin se net iznos umjesto toga odobrava na kontu glavne knjige tog bankovnog računa, tako da se bankovni račun Stripe čisti isplatu po isplatu. summary.clearedAmount je ukupni iznos premješten na ovaj način; stavka čiji se iznos razlikuje od onoga što taj račun drži imenovana je u warnings. Ako ne preostane ništa za knjiženje, serija se proknjižava s journalTransactionId postavljenim na null.

bank/settlements/list i /get vraćaju, po seriji, clearedNet, clearingDifference (stavke isplate minus iznosi koje drugi bankovni račun drži za njih; nula kada se slažu) i clearingOpenCount (stavke s razlikom ili neproknjiženim tijekom); /get vraća isto po stavci kao clearingBankAccountId, clearingBooked, clearingDifference i clearingUnposted. Retci povrata jedne naplate uspoređuju se zajedno jer izvoz plaćanja sadrži samo ukupni vraćeni iznos. Izvoz Stripe plaćanja uvezen nakon što je njegova isplata proknjižena preskače tijekove te isplate i imenuje je u warnings.

PDV na samu proviziju obračunava se zasebno (izdajte račun za proviziju prodavatelju); podjela samo raspoređuje prikupljenu gotovinu.

Isplate u drugoj valuti

Temeljnica se uvijek piše u izvornoj valuti tvrtke, ali isplata u drugoj valuti knjiži se automatski - nije potreban ručni unos:

  • Serija se preračunava po tečaju na datum knjiženja (date, uz rezervnu opciju datuma isplate, pa danas). Tečaj je vlastiti tečaj tvrtke za tu valutu (reference/exchange-rates/set) kada je barem jednako ažuran kao i službeni, inače najnoviji službeni tečaj na ili prije tog datuma. Bez tečaja na ili prije tog datuma, poziv ne uspijeva s 422 i imenuje reference/exchange-rates/sync.
  • Svaki se konto preračunava po tom tečaju serije osim potraživanja od kupaca, koja se zatvaraju po tečaju fxRate po kojem je svaki račun izdan. Preostala razlika između ta dva tečaja knjiži se na bank.fxGain (zadano 5803) ili bank.fxLoss (zadano 6803) kao realizirana tečajna razlika, tako da temeljnica i dalje ostaje u ravnoteži.
  • Odgovor summary vraća korišteni tečaj fxRate i rezultirajuću tečajnu razliku exchangeDifference, a serija zadržava tečaj po kojem je proknjižena. Upareni račun čija se valuta razlikuje od valute serije ne zatvara se: njegov iznos odlazi na prijelazni konto uz upozorenje.
  • Ostaje jedno ograničenje uvoza: jedna isplata čiji retci miješaju nekoliko valuta odbija se s 422, kao i ponovni uvoz čija se valuta razlikuje od serije već pohranjene za tu isplatu.

Ručni / prilagođeni izvori

Sve ostalo može se poslati kao običan JSON:

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

Osigurajte stabilan externalId po transakciji kako bi ponovni uvozi bili idempotentni.