ARLingNotes

Tatra banka a import hromadného príkazu:čo kontroluje pri pain.001

Vyexportuješ z účtovného softvéru hromadný príkaz na úhradu vo formáte pain.001, nahráš ho do internet bankingu Tatra banky, a import buď zlyhá bez zrozumiteľnej správy, alebo prejde len časť platieb. Tatra banka na rozdiel od Slovenskej sporiteľne zverejňuje pomerne podrobný popis formátu, ktorý pri importe hromadného príkazu skutočne overuje. Nižšie je zoznam konkrétnych kontrol, ku každej s odkazom na dokument, z ktorého pochádza.

1. Menný priestor a povinné hodnoty PmtMtd, SvcLvl, ChrgBr

Súbor musí byť vo verzii pain.001.001.03, teda s menným priestorom urn:iso:std:iso:20022:tech:xsd:pain.001.001.03. Túto verziu má vo svojom dokumente priamo v názve aj Tatra banka: Prenosový formát pain.001.001.03 v štruktúre XML.

Tri ďalšie polia majú v štandardnej SEPA úhrade vždy rovnakú hodnotu, fixovanú samotnou schémou ISO 20022 a pravidlami SEPA Credit Transfer, nie výmyslom jednej banky: PmtMtd musí byť TRF, PmtTpInf/SvcLvl/Cd musí byť SEPA a ChrgBr musí byť SLEV (náklady delené, žiadna iná hodnota nie je pre SEPA úhradu platná). Tieto tri hodnoty vo svojej vlastnej špecifikácii výslovne vypisuje aj VÚB, ktorá popisuje ten istý formát pain.001; pri Tatra banke to overené priamo citátom z jej dokumentu nemáme, ide o hodnoty spoločné celej SEPA schéme, ktoré teda platia aj pre ňu.

BIC banky platiteľa (PmtInf/DbtrAgt/FinInstnId/BIC) musí byť presne TATRSKBX. Dokument Tatra banky to uvádza priamo: BIC platiteľa „musí byť iba TATRSKBX". Účet vedený v inej banke sa cez tento kanál poslať nedá, aj keby zvyšok súboru bol formátovo v poriadku.

2. Dátum splatnosti: nie do minulosti, najviac 31 dní dopredu, rovnaký vo všetkých blokoch

Pole ReqdExctnDt udáva požadovaný dátum splatnosti platby. Dokument Tatra banky k nemu uvádza presné ohraničenie: dátum „nesmie byť spätný dátum a dopredný dátum viac ako 31 dní". Súbor s dátumom v minulosti, napríklad omylom prenesený z minulého mesiaca, banka odmietne rovnako ako súbor so splatnosťou o dva mesiace dopredu.

Ak hromadný príkaz obsahuje viac blokov PmtInf (napríklad platiteľ posiela z dvoch rôznych účtov v jednom súbore), Tatra banka podľa toho istého dokumentu vyžaduje, aby mali všetky bloky rovnaký dátum ReqdExctnDt. Rôzne dátumy naprieč blokmi v jednom súbore banka nespracuje ako samostatné dávky, ale ako chybu.

3. Najviac 500 transakcií na jeden blok PmtInf

Dokument Tatra banky uvádza limit veľkosti dávky doslovne: „Max. 500 transakcií v súbore". V praxi platí tento limit na jeden blok PmtInf: ak účtovný softvér vygeneruje jeden PmtInf s 600 platbami, treba ho rozdeliť na dva bloky alebo dva súbory. Väčšina účtovných programov jeden hromadný príkaz do jedného PmtInf aj tak nezmestí pri takomto objeme, problém sa preto najčastejšie objaví pri hromadných mzdových alebo dodávateľských platbách.

4. Zadávateľ súboru: GrpHdr/InitgPty/Nm vo vzore [A-Za-z0-9]{1,10}/[A-Z]{2}

Pole GrpHdr/InitgPty/Nm nesie meno alebo kód zadávateľa súboru. Podľa formátu Tatra banky nie je povinné, pokiaľ ho ale účtovný softvér vyplní, musí mať tvar desiatich alebo menej alfanumerických znakov, lomka, dvojpísmenový kód krajiny, napríklad ABC1234567/SK. Hodnota, ktorá nezodpovedá tomuto vzoru, napríklad plný názov firmy so slovami a medzerami, tomuto pravidlu nevyhovuje. Keďže pole je nepovinné, najjednoduchšia oprava je vynechať ho celé, nie ho násilne skracovať do vzoru.

5. Správa pre príjemcu: iba jedna inštancia Ustrd

Element RmtInf/Ustrd nesie správu pre príjemcu, teda text, ktorý sa mu zobrazí pri platbe. Formát Tatra banky výslovne uvádza: „Povolená je iba jedna inštancia Ustrd." Ak export z účtovníctva vygeneruje viac elementov Ustrd v jednej transakcii, napríklad kvôli rozdeleniu dlhého textu na viac riadkov, Tatra banka podľa dokumentu nadbytočné elementy pri spracovaní odstráni. Text sa tak môže dostať k príjemcovi neúplný, bez chybového hlásenia pri importe.

6. Slovenský IBAN príjemcu: kontrola modulo 11

Medzinárodný kontrolný súčet IBAN (MOD-97) overuje formálnu správnosť čísla, nie to, či zodpovedá skutočne existujúcemu účtu. Tatra banka pri slovenskom IBAN príjemcu robí navyše druhú, doménovú kontrolu: posledných desať číslic IBAN, teda základné číslo účtu, musí vyhovovať algoritmu modulo 11, kde sa číslice zľava vážia postupnosťou 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 a súčet musí byť deliteľný jedenástimi.

IBAN, ktorý prejde súčtom MOD-97, ale zlyhá na tejto druhej kontrole, je typicky výsledok preklepu v čísle účtu, napríklad zámeny dvoch číslic. Tatra banka takúto platbu podľa dokumentu zamietne, aj keď formálne ide o platný IBAN.

Checklist pred importom do Tatra banky

  1. Menný priestor xmlns na elemente Document je presne urn:iso:std:iso:20022:tech:xsd:pain.001.001.03.
  2. PmtMtd je TRF, SvcLvl/Cd je SEPA, ChrgBr je SLEV vo všetkých transakciách.
  3. BIC platiteľa je presne TATRSKBX, bez medzier a bez inej varianty zápisu.
  4. ReqdExctnDt nie je v minulosti a nie je viac ako 31 dní dopredu, rovnaký vo všetkých blokoch PmtInf.
  5. Žiadny blok PmtInf nemá viac ako 500 transakcií CdtTrfTxInf.
  6. Ak je vyplnené GrpHdr/InitgPty/Nm, zodpovedá vzoru [A-Za-z0-9]{1,10}/[A-Z]{2}, inak je pole prázdne.
  7. Každá transakcia má najviac jeden element RmtInf/Ustrd.
  8. Slovenský IBAN príjemcu prejde aj kontrolou modulo 11 na posledných desať číslic, nielen medzinárodným MOD-97.

Časté otázky

Čo ak v súbore chýba BIC banky platiteľa?

Tatra banka BIC platiteľa vyžaduje vyplnený a s presnou hodnotou TATRSKBX. Prázdne pole alebo iná hodnota je dôvod na zamietnutie, pretože z IBAN platiteľa banka BIC neodvodzuje, len z IBAN príjemcu.

Prečo súbor prešiel inde, ale do Tatra banky nie

Limit 500 transakcií na blok, formát InitgPty/Nm, rovnaký dátum vo všetkých blokoch a modulo 11 kontrola IBAN sú pravidlá, ktoré Tatra banka zdokumentovala sama a iná banka ich mať nemusí. Súbor môže byť formátovo v poriadku podľa všeobecnej normy ISO 20022, a napriek tomu narazí na konkrétne pravidlo jednej banky.

Znamená čistý výsledok kontroly, že platba prejde?

Nie. Ide o kontrolu formátu XML voči verejne publikovaným pravidlám Tatra banky, nič viac. Banka môže platbu odmietnuť aj z iných dôvodov, napríklad z nedostatku krytia na účte alebo z vlastných bezpečnostných pravidiel, ktoré vo svojej verejnej dokumentácii neopisuje.

Kto si to chce overiť na vlastnom súbore, môže XML vložiť do SEPA pain.001 Doctor a vybrať Tatra banku.

Zdroje

  1. Tatra banka: Prenosový formát pain.001.001.03 v štruktúre XML. tatrabanka.sk/.../prenosovy_formatpain001.pdf. Zdroj pre menný priestor, BIC platiteľa TATRSKBX, limit 500 transakcií, okno dátumu ReqdExctnDt (nie spätný, max 31 dní dopredu), rovnaký dátum vo všetkých blokoch PmtInf, vzor GrpHdr/InitgPty/Nm, jednu inštanciu Ustrd a kontrolu modulo 11 slovenského IBAN príjemcu. Overené 6. 9. 2026.
  2. VÚB, a. s.: Popis formátu pre SEPA úhrady - SCT. app.vub.sk/.../sct_klient_f.pdf. Zdroj pre presné hodnoty PmtMtd „TRF", SvcLvl/Cd „SEPA" a ChrgBr „SLEV" v poli pain.001, ako doklad, že ide o hodnoty spoločné viacerým bankám spracúvajúcim ten istý formát, nie o špecifikum jednej z nich. Overené 6. 9. 2026.
  3. ISO 20022 (iso20022.org) a EPC SEPA Credit Transfer rulebook (europeanpaymentscouncil.eu): základná schéma pain.001.001.03 a jej menný priestor, pravidlo EUR ako jedinej meny a PmtMtd/SvcLvl/ChrgBr ako schémou fixované hodnoty. Overené 6. 9. 2026.

Presnú citáciu Tatra banky pre hodnoty PmtMtd, SvcLvl/Cd a ChrgBr sme priamo v jej dokumente nedohľadali; v článku sú preto označené ako hodnoty fixované schémou SEPA Credit Transfer, nie ako doslovný citát Tatra banky.