Nordlet

← Dokumentācija / Ceļveži

Banku un maksājumu importēšana

camt.053 izraksti, Stripe CSV, PSP norēķinu saskaņošana un pielāgoti JSON plūsmas dati.

Visi importētie dati nonāk kā bankas darījumi bankas kontā (bank/accounts/create). Darījumiem ir externalId; tās pašas datnes atkārtota importēšana ir droša - rindas, kuru (bankAccountId, externalId) jau eksistē, tiek izlaistas un reģistrētas skaitītājā skipped. Importētie darījumi sākumā ir statusā new un tiek grāmatoti virsgrāmatā tikai tad, kad tie tiek saskaņoti (bank/transactions/match, izmantojot bank/transactions/suggest-matches kandidātu atlasei).

Tīmekļa lietotnē šīs pašas importēšanas iespējas ir pieejamas sadaļā Bankas → Importēt datni (datnes augšupielāde, šablonu atlasītājs).

Nepareizu saskaņošanu var atcelt ar bank/transactions/unmatch (sadaļā Bankas → Darījumi poga Atcelt saskaņošanu). Grāmatotie ieraksti nekad netiek laboti vai dzēsti: maksājums, kas saskaņots ar rēķinu, vai rinda, ko importa šablons ierakstījis kontā, saņem stornējošu žurnāla darījumu ar visiem ierakstiem pretējā pusē, kura datums ir date (pēc noklusējuma: šodiena, un datums nedrīkst būt agrāks par sākotnējo grāmatojumu). Rēķina apmaksātā summa un maksājuma statuss samazinās par attiecīgās bankas rindas summu. Rinda, kas saistīta ar maksājumu pakalpojumu sniedzēja (PSP) norēķinu, tiek tikai atsaistīta, jo norēķina grāmatojums pieder pie partijas. Rinda atgriežas statusā new, un to var saskaņot no jauna. Stornēšanas datumam jāiekļaujas atvērtajā grāmatvedības periodā.

Importa šabloni

Importa šablons nosaka datu avotu, uzskaita avota nodrošinātos laukus un piesaista naudu saturošos laukus virsgrāmatas kontiem. Šabloni tiek pārvaldīti sadaļā Bankas → Importa šabloni un izmantojot bank/import-templates/create|update|delete|get|list.

POST /v1/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 ir viens no šādiem veidiem: stripe, iso20022, bank_connection vai revolut.
  • Katram laukam ir name un neobligāts accountCode. Kontu var piesaistīt tikai tiem laukiem, kas satur naudu: Stripe laukiem Amount, Fee un Amount Refunded; camt.053 laukam Ntry/Amt; bankas plūsmas laukam transaction_amount.amount. Kontam ir jāeksistē kontu plānā (izveidojiet to ar ledger/accounts/create).
  • Lauku sarakstu fields var izlaist; tādā gadījumā tiek izmantots attiecīgā tipa standarta lauku saraksts: Stripe izvades Payments → Export datnes kolonnu nosaukumi (izņemot 19 Card … kolonnas, kuras arī veidlapa pēc noklusējuma atstāj neatzīmētas), camt.053 elementi, kas atrodami katrā izrakstā (Stmt/Id, Stmt/Acct/Id/IBAN, Stmt/Bal/…, Ntry/Amt, Ntry/CdtDbtInd, Ntry/Sts, Ntry/BookgDt), vai atribūti, ko PSD2 bankas plūsma atgriež par katru darījumu. Pievienojiet vai noņemiet ierakstus, lai tie atbilstu jūsu datnei: importētājs nolasa arī neobligātos camt.053 elementus 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 un TxDtls/AddtlTxInf.
  • Stripe lauks Customer Email var ietvert iestatījumu "createPartner": true. Tādā gadījumā imports izveido klienti (fiziskas personas tipa sadarbības partneri, kas atzīmēts kā klients) katrai datnē esošajai e-pasta adresei, kurai nav esoša partnera, izmantojot lauku Customer Description kā nosaukumu (vai e-pasta adresi, ja tas ir tukšs) un kolonnas Card Address … kā adresi, ja datne tās satur. Esošie partneri tiek meklēti pēc e-pasta adreses, neņemot vērā burtu reģistru. Atbildē tiek sniegts izveidoto klientu skaits laukā customersCreated.
  • metaFields (tikai Stripe) norāda maksājumu metadatu atslēgas. Stripe eksportē katru atslēgu kā kolonnu <key> (metadata); saraksts ir brīvas formas un var būt garš.
  • invoiceItemId (tikai Stripe, neobligāts) ir kataloga prece vai pakalpojums. Ja tas ir iestatīts, katrs rēķins un kredītrēķina rinda, ko imports izveido, atsaucas uz šo preci (tās grāmatojumu un, ja lauks invoiceVatRatePercent ir tukšs, tās PVN likmi); rindas teksts joprojām tiek ņemts no maksājuma (charge).
  • companyMetaField (tikai Stripe) norāda vienu no šīm atslēgām kā uzņēmuma pazīmi. Ja maksājuma ierakstā šajā kolonnā ir true, 1, yes, company, business vai b2b, tam izveidotais klients ir juridiskas personas tipa sadarbības partneris, nevis fiziska persona.
  • invoiceMetaField (tikai Stripe) norāda vienu no šīm atslēgām, piemēram, pasūtījuma numuru, un invoiceVatRatePercent norāda PVN likmi no tās izveidotajiem rēķiniem. Importējot katrs maksājuma un atmaksas ieraksts tiek grupēts pēc šīs atslēgas vērtības:
    • vērtība, kas atbilst esošam pārdošanas rēķinam - tirdzniecības pasūtījumam, kura externalRef ir šī vērtība (ecommerce/orders/create, jebkurš kanāls), vai rēķinam, kura fullNumber ir šī vērtība - piesaista grupu šim rēķinam;
    • vērtība bez rēķina izveido jaunu rēķinu: partneris tiek ņemts no Customer Email (izveidots, ja trūkst, tāpat kā priekš createPartner), pa vienai rindai katram maksājumam (Checkout Line Item Summary vai Description kā teksts, maksājuma summa kā cena ar PVN pie invoiceVatRatePercent), izrakstīšanas datums = pirmā maksājuma datums, PVN apstrāde no uzņēmuma un kartes izcelsmes valsts. Rēķins tiek izrakstīts un iegrāmatots uzreiz, un tiek reģistrēts pārdošanas pasūtījums ar kanālu stripe un šo vērtību kā externalRef, lai turpmākie importi to piesaistītu, nevis izveidotu no jauna;
    • pēc tam katrs grupas maksājums tiek saskaņots ar rēķinu kā saņemtais maksājums (iegrāmatojot ieņēmumus); katra atmaksa izveido izrakstītu kredītrēķinu attiecīgajam rēķinam par atmaksāto summu un saskaņo atmaksu ar to. Atbildē tiek atgriezti skaitītāji invoicesCreated, invoicesLinked, creditNotesCreated un paymentsMatched; grupas, kuras nevarēja apstrādāt (nav klienta e-pasta, dažādas valūtas, piesaistītais rēķins joprojām ir melnraksts vai jau pilnībā apmaksāts), tiek uzskaitītas laukā warnings un atstātas kā new bankas darījumi. Piesaistītajā šablone vienlaikus nenorādiet lauka Amount piesaisti virsgrāmatas kontam: rēķinam saskaņots maksājums netiek grāmatots otrreiz, bet nesaskaņots maksājums tiktu iegrāmatots.
  • Šablonu nosaukumiem ir jābūt unikāliem uzņēmuma ietvaros.
  • camt.053 un bankas savienojuma šabloni ietver tās pašas opcijas, kas tiek nolasītas no izraksta, nevis Stripe kolonnām:
    • Izveidot trūkstošos partnerus: createPartner debetētāja nosaukuma rindā (TxDtls/RltdPties/Dbtr/Nm, plūsma debtor.name) izveido klientu katram nezināmam ienākošās naudas maksātājam; kreditora nosaukuma rindā (TxDtls/RltdPties/Cdtr/Nm, plūsma creditor.name) izveido piegādātāju katram nezināmam izejošās naudas saņēmējam. Partneri tiek identificēti pēc IBAN (saglabāts partner_bank_accounts), pēc tam pēc precīza nosaukuma; jauns partneris tiek uzskatīts par juridisku personu, ja nosaukums satur uzņēmuma tiesisko formu (SIA, AS, MB, UAB, GmbH, Ltd, …), pretējā gadījumā - par fizisku personu. Atbildē tiek atgriezts skaitītājs customersCreated (datnes importam) vai partnersCreated (plūsmas sinhronizācijai).
    • Piesaistīt rēķinus pēc atsauces: invoiceMetaField, kas iestatīts uz maksājuma mērķa vai atsauces rindu (TxDtls/RmtInf/Ustrd, TxDtls/RmtInf/Strd/CdtrRefInf/Ref, TxDtls/Refs/EndToEndId; plūsma remittance_information, reference_number), saskaņo katru jaunu bankas rindu, kuras atsauce, maksājuma mērķis vai apraksts satur atvērta izrakstītā pārdošanas rēķina (ienākošā nauda) vai reģistrēta pirkuma rēķina (izejošā nauda) numuru, un iegrāmato maksājumu. Ja maksātāja IBAN ir saglabāts pie partnera vai maksātāja nosaukums sakrīt ar partnera nosaukumu vai kodu, rēķinam ir jāpieder šim partnerim. Maksājums no nezināma maksātāja tiek piesaistīts tikai tad, ja tas precīzi sakrīt ar rēķina atlikušo summu un rēķina numurs satur tā sērijas prefiksu, tāpēc vienkāršs skaitlis, piemēram, summa, nekad netiek uzskatīts par atsauci. Maksājums, kas pārsniedz atlikušo summu, netiek piesaistīts nekad. Rindas, kas neiztur šīs pārbaudes, paliek statusā new manuālai saskaņošanai un tiek norādītas brīdinājumos (warnings). Ar iestatījumu advanceInvoices: true nesaskaņots ienākošais maksājums no zināma partnera izveido izrakstītu avansa rēķinu (tips advance) par attiecīgo summu, izmantojot invoiceVatRatePercent vai invoiceItemId likmi, un saskaņo maksājumu ar to; partnerim ir jābūt zināmam, tāpēc atzīmējiet arī debetētāja rindu.
  • Grāmatošanas nosacījumi pēc darījuma koda: papildus Ntry/Amt / transaction_amount.amount, lauku sarakstā ir noteikumu rindas Ntry/BkTxCd=CHRG, =INTR, =TAXE, Ntry/CdtDbtInd=DBIT, =CRDT (plūsma: bank_transaction_code=…, credit_debit_indicator=…). Rinda tiek grāmatota uz to kontu, kuram atbilst pirmais atbilstošais noteikums: vispirms bankas darījuma koda saime, pēc tam virziens, un visbeidzot vienkāršais summas lauks. Noteikumu rindas netiek pārbaudītas pret datni.
    • Bankas komisijas maksas partneris: createPartner uz …=CHRG noteikuma rindas izveido piegādātāju, kura nosaukums atbilst bankas nosaukumam (izraksts Stmt/Acct/Svcr/FinInstnId/Nm, vai savienojuma banka, vai virsgrāmatas bankas konta nosaukums), un iegrāmato katru komisijas maksu ar šo partneri.
    • Bankas savienojuma šabloni tiek izvēlēti katram plūsmas kontam ar bank/feeds/accounts/configure (lietotnē Bankas → Savienojumi), kas iestata arī syncSchedule (manual, daily, weekly, monthly): API automātiski sinhronizē kontus saskaņā ar grafiku, kad beidzies to periods. Šabloni tiek piemēroti katrā bank/feeds/sync; sinhronizācijas atbilde tad uzrāda arī skaitītājus posted, partnersCreated, invoicesLinked, invoicesCreated, paymentsMatched un warnings.

Padodiet templateId uz bank/statements/import parametra format vietā: šablona tips atlasa analizētāju, un datnei ir jāsatur visi šablona sarakstā norādītie lauki - datne, kurā trūkst kāda no tiem, tiek noraidīta ar HTTP 422 kļūdu un trūkstošo kolonnu vai elementu nosaukumiem. Metadatu laukiem nav obligāti jābūt klāt. Bankas savienojuma šabloni apraksta tiešsaistes PSD2 plūsmu, un tos nevar izmantot datņu importēšanai.

ISO 20022 šablons nolasa arī MT940 datnes: datne, kas sākas ar {1: vai :20: (vai tiek nosūtīta ar "format": "mt940"), tiek parsēta kā MT940, un tās rindām tiek piemēroti šablona atsauču saskaņošanas un grāmatošanas noteikumi. MT940 datnēm elementu pārbaude tiek izlaista, un Ntry/BkTxCd=… noteikumi uz MT940 rindām neattiecas, jo MT940 nesatur ISO 20022 bankas darījuma kodu; tā vietā izmantojiet Ntry/CdtDbtInd=… noteikumus.

Bankas kontā var būt tikai viena valūta. Izraksts citā valūtā tiek noraidīts ar HTTP 422 (camt.053 datnē, kurai ir vairāku valūtu izraksti vienam un tam pašam IBAN, tiek importēts tikai tas izraksts, kura valūta sakrīt ar konta valūtu), tāpat tiek noraidīta arī rinda, kas nosūtīta uz bank/transactions/import ar valūtu, kura atšķiras no konta valūtas.

Katra naudas plūsma, kas izveidota no lauka ar accountCode, importēšanas brīdī tiek iegrāmatota kā viens žurnāla darījums: ienākošā nauda debetē bankas konta virsgrāmatas kontu un kreditē piesaistīto kontu; izejošā nauda debetē piesaistīto kontu un kreditē bankas konta virsgrāmatas kontu. Summas tiek konvertētas uz bāzes valūtu pēc kustības datuma kursa. Pēc tam bankas darījums tiek saskaņots (matched) ar šo žurnāla darījumu (matchedDocumentType = journal_transaction), un to vairs nepiedāvā saskaņošanai ar rēķiniem. Atbildē tiek atgriezts skaitītājs posted. Plūsmas no nepiesaistītajiem laukiem paliek statusā new un tiek saskaņotas ar rēķiniem kā agrāk - piemēram, piesaistiet Fee PSP komisijas maksas izdevumu kontam un atstājiet Amount nepiesaistītu, lai maksājumi joprojām tiktu saskaņoti ar pārdošanas rēķiniem.

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

ISO 20022 camt.053 (atvērtās bankvedības XML)

Lietuvas bankas (Swedbank, SEB, Luminor, Šiaulių bankas, …) ļauj lejupielādēt kontu izrakstus ISO 20022 camt.053 XML formātā no internetbankas - parasti izrakstu eksporta/lejupielādes sadaļā, izvēloties formātu "ISO XML" vai "camt.053". To pašu formātu atgriež arī PSD2 kontu informācijas API.

POST /v1/bank/statements/import
{
  "bankAccountId": "…",
  "format": "camt053",
  "content": "<?xml version=\"1.0\"…>…"
}
  • Datne var saturēt vairākus izrakstus; katra izraksta IBAN ir jāsakrīt ar bankas konta IBAN (izraksti bez IBAN vai konti bez tā tiek pieņemti bez izmaiņām).
  • Darījumu atsauces (AcctSvcrRef/NtryRef, ja tās nav pieejamas, izmantojot satura hešu) kļūst par externalId.
  • Atbilde atgriež metadatus par katru izrakstu: izraksta ID, periodu, sākuma/beigu atlikumus, darījumu skaitu.
  • Saskaņošanai no katra ieraksta tiek iegūts darījuma partnera nosaukums, IBAN un maksājuma mērķis.

Maksājumi pretējā virzienā tiek eksportēti kā pain.001, izmantojot bank/payments/export.

Revolut Business CSV

Lejupielādējiet Revolut Business konta darījumu izrakstu CSV formātā un importējiet to, izmantojot iebūvēto šablonu Revolut Business (templateId: "builtin-revolut"). Šis šablons ir pieejams katram uzņēmumam bez atsevišķas izveides: bank/import-templates/list-builtin to uzskaita, bank/import-templates/get atgriež, savukārt bank/import-templates/update un bank/import-templates/delete atgriež HTTP 400 kļūdu. Lietotnē tas ir norādīts pirmajā vietā sadaļā Bankas → Importa šabloni; to atverot, var redzēt tā iestatījumus, un saglabāšana izveido jūsu pašu uzņēmuma šablonu, kuru varat mainīt.

POST /v1/bank/statements/import
{
  "bankAccountId": "…",
  "templateId": "builtin-revolut",
  "content": "Date started (UTC),Date completed (UTC),ID,Type,State,…"
}
  • Tiek importētas tikai rindas, kurām State = COMPLETED. Citas rindas (piemēram, PENDING) tiek izlaistas un pieskaitītas brīdinājumiem (warnings); tās tiks importētas vēlāk, augšupielādējot datni, kurā to statuss ir izpildīts.
  • Katra rinda kļūst par bankas darījumu ar datumu no Date completed (UTC), summu no Total amount, valūtu no Payment currency, ID kā externalId un Description kā aprakstu.
  • Izejošās naudas darījuma partneris ir Beneficiary name un Beneficiary IBAN; karšu maksājumam bez labuma guvēja partneris ir tirgotājs no Description. Ienākošās naudas darījuma partneris ir Sender name un Sender account.
  • Rindas tiek grupētas pēc konta un valūtas. Kolonnai International account number ir jāsakrīt ar bankas konta IBAN, un tiek importētas tikai tās rindas, kuru valūta sakrīt ar bankas konta valūtu.
  • Katrai rindai importētājs pārbauda, vai iepriekšējās rindas atlikums plus Total amount ir vienāds ar Balance, un visas rindas, kurās tas nesakrīt, uzskaita brīdinājumos (warnings).
  • Datnei jāsatur kolonnas Date completed (UTC), ID, Type, State, Description, Payment currency, Total amount, Reference, Sender name un Beneficiary name.

Veicot katru importu, iebūvētais šablons:

  • izveido klientu katram nezināmam ienākošās naudas sūtītājam un piegādātāju katram nezināmam labuma guvējam vai kartes tirgotājam izejošajai naudai, kā aprakstīts iepriekš sadaļā Izveidot trūkstošos partnerus;

  • saskaņo katru rindu, kuras Reference vai Description satur atvērta pārdošanas vai pirkuma rēķina numuru, un iegrāmato maksājumu, izmantojot iepriekšminētās pārbaudes sadaļā Piesaistīt rēķinus pēc atsauces;

  • iegrāmato rindas, kurām nav atrasts rēķins, atbilstoši to Type uz grāmatošanas nosacījuma kontu:

    Type Grāmatošanas nosacījums Noklusējuma konts Rumānijas kontu plāns Grāmatojums
    FEE bank.fees 6800 627 debetē nosacījuma kontu, kreditē bankas konta virsgrāmatas kontu; partneris: piegādātājs, kura nosaukums sakrīt ar bankas kontu
    CARD_PAYMENT bank.cardPayments 6209 628 debetē nosacījuma kontu, kreditē bankas konta virsgrāmatas kontu, bez PVN
    TOPUP bank.topUps 3010 1012 debetē bankas konta virsgrāmatas kontu, kreditē nosacījuma kontu

    Citu veidu rindas, piemēram, TRANSFER, paliek statusā new saskaņošanai.

Mainiet kontus, izmantojot ledger/posting-rules/update; iebūvētais šablons izmantos jaunos kontus, sākot ar nākamo importu. Grāmatošanas nosacījumu nevar izslēgt: lai importētu karšu maksājumus vai papildinājumus bez to grāmatojuma, izveidojiet revolut tipa uzņēmuma šablonu bez rindām Type=CARD_PAYMENT vai Type=TOPUP un veiciet importu ar to. Šādā veidā iegrāmatojums karšu maksājums vēlāk netiks saskaņots ar piegādātāja rēķinu, kad tas tiks reģistrēts; grāmatojiet vai nu vienu, vai otru, bet ne abus.

revolut tipa uzņēmuma šablons izmanto tās pašas kolonnas un var grāmatot rindas pēc veida, izmantojot nosacījumu rindas Type=FEE, Type=CARD_PAYMENT, Type=TRANSFER un Type=TOPUP. Importējot ar "format": "revolut-csv" bez šablona, rindas tiek importētas bez jebkādām no šīm darbībām.

Stripe CSV

Eksportējiet datus no Stripe vadības paneļa - var izmantot jebkuru no šiem pārskatiem:

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

Izveidojiet īpašu bankas kontu Stripe vajadzībām (piem., ar nosaukumu "Stripe", virsgrāmatas kontu 2710 vai savu apakškontu) - Stripe bilance darbojas līdzīgi bankas kontam: ienāk maksājumi, tiek ieturētas komisijas maksas, un izmaksas pārskaita atlikumu uz jūsu reālo bankas kontu.

Importēšanas darbība:

  • Katrs bilances darījums kļūst par vienu bankas darījumu par bruto (gross) summu (externalId = bilances darījuma ID).
  • Nullei nepievienota komisijas maksa (fee) kļūst par otru darījumu ar pretēju zīmi (externalId = <id>:fee, darījuma partneris "Stripe") - tādējādi komisijas maksas var saskaņot vai grāmatot kā izdevumus atsevišķi no ieņēmumiem. Komisijas maksas, kas tiek atgrieztas par atmaksām, parādās kā pozitīvas summas.
  • Izmaksu (Payout) rindas tiek importētas kā vienreizēji negatīvi darījumi; saskaņojiet tos ar attiecīgo ienākošo darījumu jūsu reālā bankas konta izrakstā.
  • Rindas ar nulles summu tiek izlaistas; datums tiekņemts no created_utc (UTC).
  • Maksājumu eksporta rindas, kurās nav notikusi naudas kustība, tiek izlaistas: Captured = false (autorizācijas / kavēti maksājuma sagūstījumi) un statuss Failed/Canceled (Neizdevies/Atcelts).
  • Nullei nepievienota summa laukā Amount Refunded kļūst par trešo, negatīvo darījumu (externalId = <id>:refund) ar datumu Refunded date (UTC) - lai maksājumu rindās iekļautās daļējās un pilnīgās atmaksas nepazustu.

PSP norēķinu saskaņošana (Stripe izmaksu pārskati)

Lai vienreizēju izmaksu summu sadalītu atbilstošajos pasūtījumos, atmaksās, komisijas maksās un pretenzijās (chargebacks), vienkārša izraksta importa vietā izmantojiet norēķinu galapunktus. Tiek pieņemti divi Stripe eksportētie dati (tiek noteikti automātiski):

  • Reports → Payouts → Payout reconciliation, itemized (pārskatu tipi payout_reconciliation.itemized.* vai payout_reconciliation.by_id.itemized.*) - precīzs, viena rinda uz vienu bilances darījumu; ieteicams aktīvos kontos.
  • Payments → Export (unified payments) - maksājumu līmeņa eksports; darbojas testa/smilšu kastes režīmā, kur norēķinu saskaņošana nav pieejama. Sagūstītie maksājumti tiek grupēti pēc izmaksas ID kolonnā Transfer; nesagūstītās/neizdevušās rindas tiek izlaistas (skippedNotSettled); nenulles Amount Refunded kļūst par sintētisku atmaksas rindu maksājuma izmaksu partijā - tas ir tuvinājums, jo atmaksa reāli var būt noskaidrota vēlākā izmaksā. Saskaņošanas atsauces tiek ņemtas no maksājuma ID, PaymentIntent ID, Invoice Number, Client Reference ID un katras … (metadata) kolonnas (piem., pasūtījuma numurs metadatos).

Viena CSV datne var aptvert vairākas izmaksas. Stripe lejupielādē pozīciju pārskatu pa vienai datnei katrai sadaļai (…_charge_…, …_refund_…, …_fee_…); importējiet tās visas - rindas jau importētai izmaksai saplūst ar esošo partiju (tiek uzskaitītas skaitītājā updated), kamēr tā vēl nav iegrāmatota, un partijas kopsummas tiek pārrēķinātas.

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

Importēšanas darbība:

  • Rindas tiek grupētas pēc automatic_payout_id norēķinu partijās - viena partija uz vienu izmaksu, ar bruto/komisijas/neto kopsummām (rindas net summa = summa, kas ienāk jūsu bankā). Izmaksas atkārtota importēšana tiek izlaista (skipped skaitītājs). Rindas, kas vēl nav piešķirtas izmaksai, un pašas payout rindas tiek izlaistas un uzskaitītas atsevišķi.
  • Katra maksājuma / atmaksas / strīda rinda tiek automātiski saskaņota ar pārdošanas rēķinu, secīgi izmantojot: e-komercijas pasūtījuma externalRef (jebkuru vērtību no order_id, payment_intent_id, source_id, charge_id vai jebkuras *_metadata[...] kolonnas), rēķina fullNumber, kas parādās šajās kolonnās, un - atmaksām un strīdiem - iepriekš saskaņota maksājuma charge_id (no tās pašas datnes vai agrākiem importiem).
  • Pārskatiet datus ar bank/settlements/list / bank/settlements/get; izlabojiet neatbilstības ar bank/settlements/match { lineId, invoiceId } (vai invoiceId: null, lai atceltu saskaņošanu).

POST /v1/bank/settlements/post { id, date?, commissionPercent? } iegrāmato visu partiju kā vienu sabalansētu žurnāla darījumu un dzēš saistītās saistības rēķinos (paidAmount/paymentStatus, sale_invoice.paid tīmekļa āķi):

  • Debetējiet bankas konta virsgrāmatas kontu par neto izmaksu; debetējiet PSP komisijas maksas (settlements.fees, pēc noklusējuma 6800) par ieturētajām komisijām un komisiju rindām.
  • Kreditējiet debitoru parādus par katru saskaņoto maksājumu; atmaksas un strīdi to stornē. Summa tiek ierobežota līdz katra rēķina atlikušajai summai - jebkurš pārpalikums nonāk pagaidu (transit) kontā ar brīdinājumu.
  • Nesaskaņotie maksājumi: ja ir iestatīts commissionPercent, tie tiek sadalīti starp komisijas ieņēmumiem (settlements.commissionRevenue, pēc noklusējuma 5001) un pārdevēja saistībām (settlements.sellerPayable, pēc noklusējuma 4499) - tas ir tirgus laukuma (marketplace) modelis, kurā iekasētā nauda lielākoties pieder pārdevējiem. Ja tas nav iestatīts, tie tiek novietoti uz settlements.suspense (pēc noklusējuma 4440, saņemtie avansi).
  • platform_earning rindas (Stripe Connect lietotnes komisijas maksas) tiek iegrāmatotas komisijas ieņēmumos; transfer rindas (izmaksas saistītajiem pārdevējiem) samazina pārdevēja saistības.
  • Visus četrus kontus var pārdefinēt katram uzņēmumam, izmantojot grāmatošanas nosacījumus (ledger/posting-rules).
  • Rinda, kuras maksājums, komisija vai atmaksa jau tika importēta citā bankas kontā, izmantojot Stripe maksājumu eksportu (bank/statements/import), netiek grāmatota komisijās, debitoros vai pagaidu kontā. Tās net summa tiek kreditēta attiecīgā bankas konta virsgrāmatas kontā, lai Stripe bankas konts tiktu izlīdzināts no izmaksas uz izmaksu. summary.clearedAmount ir kopējā šādā veidā pārvietotā summa; rinda, kuras summa atšķiras no kontā esošās, tiek uzskaitīta brīdinājumos (warnings). Ja nav palicis nekas, ko grāmatot, partija tiek iegrāmatota ar nulles journalTransactionId.

bank/settlements/list un /get atgriež katrai partijai clearedNet, clearingDifference (izmaksas rindas mīnus summas, ko cits bankas konts tur par tām; nulle, ja tās sakrīt) un clearingOpenCount (rindas ar atšķirību vai neiegrāmatotu kustību); /get atgriež to pašu katrai rindai kā clearingBankAccountId, clearingBooked, clearingDifference un clearingUnposted. Viena maksājuma atmaksas rindas tiek salīdzinātas kopā, jo maksājumu eksports satur tikai atmaksāto kopsummu. Stripe maksājumu eksports, kas importēts pēc tam, kad tā izmaksa jau ir iegrāmatota, izlaiž attiecīgās izmaksas kustības un norāda tās brīdinājumos (warnings).

PVN par pašu komisijas maksu tiek izrakstīts atsevišķi (izrakstiet komisijas rēķinu pārdevējam); sadalījums tikai sadala iekasēto skaidro naudu.

Izmaksas citā valūtā

Žurnāls vienmēr tiek rakstīts uzņēmuma bāzes valūtā, taču izmaksa citā valūtā tiek iegrāmatota automātiski - manuāla ievade nav nepieciešama:

  • Partija tiek konvertēta pēc grāmatošanas datuma kursa (date, ja nav norādīts, izmantojot izmaksas datumu, vai šodienas datumu). Kurss ir uzņēmuma paša kurss šai valūtai (reference/exchange-rates/set), ja tas ir vismaz tikpat aktuāls kā oficiālais kurss, pretējā gadījumā tiek izmantots jaunākais oficiālais kurss šajā datumā vai pirms tā. Ja datumam vai pirms tā nav pieejams kurss, pieprasījums beidzas ar 422 kļūdu un norāda uz reference/exchange-rates/sync.
  • Katrs kontsts tiek konvertēts pēc šī partijas kursa, izņemot debitoru parādus, kuri tiek dzēsti pēc tā fxRate kursa, kādā katrs rēķins tika izrakstīts. Starpība starp abiem kursiem tiek iegrāmatota kontā bank.fxGain (pēc noklusējuma 5803) vai bank.fxLoss (pēc noklusējuma 6803) kā realizētā valūtas kursa svārstību starpība, lai žurnāls joprojām būtu sabalansēts.
  • Atbildes summary atgriež izmantoto fxRate un iegūto exchangeDifference, un partija saglabā kursu, ar kādu tā tika iegrāmatota. Saskaņots rēķins, kura valūta atšķiras no partijas valūtas, netiek dzēsts: tā summa nonāk pagaidu kontā ar brīdinājumu.
  • Saglabājas viens importa ierobežojums: viena izmaksa, kuras rindās sajauktas vairākas valūtas, tiek noraidīta ar 422, tāpat tiek noraidīts arī atkārtots imports, kura valūta atšķiras no attiecīgajai izmaksai jau saglabātās partijas.

Manuālas / pielāgotas plūsmas

Jebko citu var nosūtīt kā parastu JSON:

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

Nodrošiniet stabilu externalId katram darījumam, lai atkārtota importēšana būtu idempotenta.