Banka odmietla váš SEPA XML. Zistite presne prečo.
Vložte pain.001 hromadný príkaz, vyberte banku. Dostanete presný element, hodnotu a opravu namiesto všeobecnej chybovej hlášky.
Skontrolovať môj súborZdrojový kód na GitHube- 4 banky: Tatra banka, SLSP, VÚB, ČSOB
- 125 automatizovaných testov
- 0 €, bez účtu
- beží vo vašom prehliadači
01
Tri dôvody, prečo rovnaký súbor prejde v jednej banke a v druhej nie.
Tatra banka, SLSP, VÚB aj ČSOB tvrdia, že prijímajú pain.001. Každá si k rovnakej XSD schéme pridala vlastné pravidlá.
-
Diakritika blokuje súbor len v ČSOB.
ČSOB odmietne SEPA XML s diakritikou úplne. Povolené sú písmená a-z, A-Z, číslice 0-9, medzera a znaky
/ - ? : ( ) . , ' +. Meno so „š“, „č“ alebo „ž“ stačí na zamietnutie. -
CdtrAgt/BICrieši každá banka inak.VÚB ho má vo vlastnej špecifikácii ako povinný. Tatra banka ho vie odvodiť z IBAN a chýbajúci toleruje. ČSOB ho urobila nepovinným od 1. februára 2016.
-
Dátum a limit transakcií majú iný strop.
Tatra banka odmieta
ReqdExctnDtviac než 31 dní dopredu a max. 500 transakcií na blokPmtInf. VÚB akceptuje najviac 30 dní vopred.
02
Vložte XML, vyberte banku. Dostanete presné chyby.
Nič z toho, čo vložíte, sa neodosiela. Kontrola beží vo vašom prehliadači podľa zverejnených pravidiel bánk.
Nastavenia (banka, očakávaný počet transakcií) sa po diagnostike uložia do odkazu na stránku. Samotný XML sa do odkazu neukladá, takže výsledok cez URL zdieľať nemožno. Na zdieľanie výsledku použite tlačidlo „kopírovať report“.
03
Jedna funkcia. XML dnu, diagnóza von.
Žiadny server, žiadny API kľúč, žiadna registrácia. doctor-pain001.js je čistý JavaScript: prečítajte si ho, forknite, alebo ho spustite vo vlastnom kóde či CI.
import { diagnose } from './doctor-pain001.js'; // alebo globálne: const { diagnose } = window.SepaDoctor; const result = diagnose({ xml: '<Document xmlns="urn:iso:std:iso:20022:...', bank: 'tatrabanka' | 'slsp' | 'vub' | 'csob' | 'generic', expectedTxCount: null | number, }); // result { "status": "fail" | "warn" | "pass", "summary": "…", "expected": { bankBic, schemaNamespace, execWindowDays, nbOfTxsShouldBe, ctrlSumShouldBe }, "stats": { txCount, sum, currencies, banksDetected }, "problems": [ { code, severity, message, path, value, fix } ], "fixes": [ { title, value, where } ], "checklist": [ "…" ], "disclaimer": "…" }
Celá kontrola beží na strane klienta. Formulár vyššie volá presne túto funkciu vo vašom prehliadači. Neexistuje backend ani API kľúč, ktorý by obsah vašej platby odniesol inam.
Pravidlá vychádzajú priamo z technickej dokumentácie Tatra banky, VÚB a ČSOB, z verejných vyjadrení SLSP, a zo štandardu ISO 20022 a EPC SEPA Credit Transfer. Nie z všeobecného čítania XSD schémy.
Zadarmo, otvorené, bez reklamy a bez sledovania nad rámec anonymných počtov použitia. Prípad, ktorý nástroj neodhalí, nahláste ako issue na GitHube.
Nástroj nie je prepojený s Tatra bankou, Slovenskou sporiteľňou, VÚB ani ČSOB a nie je banka. Čistý výsledok nezaručuje, že banka platbu prijme.
04
Zadarmo.
Vznikol z vlastnej potreby: overiť SEPA XML pred nahratím do internetbankingu. Bez účtu, bez platby, bez limitu na počet kontrol.
Ak vám ušetrí popoludnie, napíšte, čo nástroj neodhalil. Otvorte issue na GitHube.
Dajte mi vedieť o novom nástroji. Len nové nástroje. Žiadny newsletter, žiadne zdieľanie. Odhlásenie odpoveďou na mail.
Ďakujeme. Ozveme sa len vtedy, keď bude niečo nové.
Nepodarilo sa uložiť. Napíšte na andrej@arling.sk.
Potrebujete kontrolu pre firmu? Hromadná kontrola stoviek súborov, automatická oprava a napojenie na účtovný systém. Napíšte, čo potrebujete, a odpovieme do 24 hodín.
Napísať, čo potrebujem05
Otázky, ktoré ľudia naozaj hľadajú.
Priame odpovede na otázky o SEPA pain.001, ktoré tento nástroj diagnostikuje.
Prečo Tatra banka odmietla môj pain.001 súbor?
Tatra banka pri importe kontroluje viac než to, či je XML validné pain.001. Kontroluje presný menný priestor pain.001.001.03, PmtMtd=TRF, SvcLvl/Cd=SEPA, ChrgBr=SLEV, BIC platiteľa presne TATRSKBX, dátum ReqdExctnDt (nie v minulosti, ani viac než 31 dní dopredu), maximálne 500 transakcií na blok PmtInf, dĺžkové limity mien a poznámky, a pri slovenskom IBAN príjemcu aj kontrolu modulo-11. Stačí porušiť jedno pravidlo a import zlyhá.
Ako správne zapísať variabilný symbol do SEPA XML?
pain.001.001.03 nemá samostatné polia pre VS, ŠS a KS. Podľa konvencie NBS sa zapisujú do PmtId/EndToEndId v poradí /VS.../SS.../KS..., napríklad /VS123/SS456/KS0308. VS aj ŠS majú maximálne 10 číslic, KS maximálne 4. Zlé poradie prevod nezastaví, ale protistrana si platbu nevie spárovať s faktúrou.
Aké znaky sú povolené v SEPA platbe (diakritika)?
ČSOB vo svojej dokumentácii uvádza presný zoznam: písmená a-z, A-Z, číslice 0-9, medzera a znaky / - ? : ( ) . , ' +. Diakritiku (č, š, ž, ä, ô, ľ) ČSOB do BusinessBanking Lite neimportuje vôbec. Pri iných bankách diakritika súbor nemusí zablokovať hneď, bezpečnejšie je exportovať bez nej vždy.
Čo znamená chyba NbOfTxs alebo CtrlSum?
GrpHdr/NbOfTxs musí presne zodpovedať počtu transakcií CdtTrfTxInf v súbore. GrpHdr/CtrlSum musí byť presný súčet súm InstdAmt na 2 desatinné miesta. Nezhoda (typicky po ručnej úprave súboru bez prepočtu súhrnov) patrí medzi najčastejšie a najmenej zrozumiteľné dôvody zamietnutia dávky.
Musí byť v pain.001 BIC príjemcu?
Závisí od banky. VÚB má CdtrAgt/BIC vo vlastnej špecifikácii označený ako povinný. Tatra banka ho vie odvodiť zo správneho SEPA IBAN a chýbajúci toleruje. ČSOB ho urobila nepovinným od 1. februára 2016. Ak generujete jeden súbor pre viac bánk, BIC radšej vždy uveďte.
Odosielajú sa moje dáta niekam?
Nie. Kontrola beží celá vo vašom prehliadači. XML, IBAN, sumy ani mená sa nikam neposielajú, nástroj nemá backend. Jedinou sieťovou aktivitou je načítanie statických súborov stránky a anonymné počítadlo použitia (Umami), ktoré zaznamená len výsledok (pass, warn, fail), nikdy obsah súboru.