Notes
Variabilný, špecifický a konštantný symbol v SEPA XML: kam presne patria
Účtovný softvér (Pohoda, Money S3, KROS Omega) vyexportuje SEPA pain.001 XML pre hromadný príkaz na úhradu. Do faktúry alebo formulára zadáte variabilný symbol, prípadne aj špecifický a konštantný symbol. Súbor sa nahrá do banky, prevod prejde bez chyby, ale protistrana si platbu nevie spárovať s faktúrou. Alebo pri kontrole cez SEPA pain.001 Doctor uvidíte presne toto:
EndToEndId "/VS123/KS0308/SS14" má VS/ŠS/KS v nesprávnom poradí.
Dôvod je vždy rovnaký: pain.001.001.03, formát, ktorý pri hromadných platbách importuje Tatra banka, Slovenská sporiteľňa, VÚB aj ČSOB, nemá pre variabilný, špecifický ani konštantný symbol samostatné XML pole. Nižšie je presne kam patria, v akom poradí a s akým limitom dĺžky.
1. VS, ŠS aj KS idú do jedného poľa: PmtId/EndToEndId
V pain.001.001.03 neexistuje element <VS>, <SS> ani <KS>. Podľa konvencie, ktorú slovenské banky pri importe SEPA hromadných príkazov spoločne používajú, sa všetky tri symboly zapíšu ako text do CdtTrfTxInf/PmtId/EndToEndId, jedného povinného poľa, ktoré má pri každej platbe aj tak byť vyplnené: banka ho vracia nezmenené vo výpise, takže slúži aj ako identifikátor platby pre spätné dohľadanie.
<CdtTrfTxInf>
<PmtId>
<EndToEndId>/VS2026091/SS0002/KS0308</EndToEndId>
</PmtId>
...
</CdtTrfTxInf>Ak EndToEndId úplne chýba, SEPA pain.001 Doctor to hlási ako samostatnú chybu (end_to_end_id_missing): pole je povinné aj bez symbolov, takže bez neho je súbor neplatný nezávisle od toho, či VS vôbec potrebujete.
2. Poradie: presne /VS.../SS.../KS...
Konvencia Národnej banky Slovenska, na ktorú sa odvoláva aj dokumentácia ČSOB k importu SEPA súborov, vyžaduje presne toto poradie: najprv variabilný symbol, potom špecifický, potom konštantný. V príklade z úvodu je poradie prehodené: /VS123/KS0308/SS14 namiesto /VS123/SS14/KS0308. Banka reťazec ako celok neoveruje, takže prevod prejde. Účtovný softvér protistrany ale symboly z EndToEndId vyčíta podľa pevnej pozície prefixu /VS, /SS, /KS: pri zlom poradí buď priradí zlé hodnoty, alebo platbu nevie spárovať s faktúrou vôbec.
3. Dĺžkové limity: VS a ŠS najviac 10 číslic, KS najviac 4
Limity zostali rovnaké ako pri klasických tuzemských platobných symboloch pred SEPA: variabilný aj špecifický symbol majú najviac 10 číslic, konštantný najviac 4. SEPA pain.001 Doctor dlhší symbol nahlási ako reference_symbol_too_long. Pri prekročení limitu si niektoré banky hodnotu skrátia samy, iné import odmietnu: spoliehať sa na to, ktorú z tých dvoch vaša banka spraví, sa neoplatí.
4. Iba číslice, žiadne písmená ani oddeľovače
Hodnota za /VS, /SS a /KS musí byť vždy len postupnosť číslic. Ak sa do nej dostane písmeno, medzera alebo ďalšia lomka (napríklad preklepom pri ručnom skladaní reťazca v exporte), SEPA pain.001 Doctor to označí ako reference_symbol_non_numeric: rovnaký problém ako pri poradí, spracujúci softvér protistrany si symbol nevie správne vyparsovať.
5. Celý EndToEndId sa musí zmestiť do 35 znakov
Norma ISO 20022 obmedzuje EndToEndId na typ Max35Text: 35 znakov vrátane lomiek a písmen VS/SS/KS. Samotné tri prefixy s maximálnou dĺžkou hodnôt (/VS + 10 číslic, /SS + 10 číslic, /KS + 4 číslice) zaberú až 29 znakov, takže na čokoľvek naviac ostáva len pár znakov. Ak export pripojí za symboly ešte vlastný text (napríklad číslo faktúry), SEPA pain.001 Doctor príliš dlhú hodnotu nahlási ako end_to_end_id_too_long a oreže ju presne na 35 znakov: konštantný symbol, ktorý bol na konci reťazca, sa tak môže stratiť bez toho, aby to bolo vidieť pri letmom pohľade na XML.
Checklist
- V súbore nehľadajte elementy
<VS>,<SS>ani<KS>: patria doPmtId/EndToEndIdpri každej transakciiCdtTrfTxInf. - Poradie v reťazci je vždy
/VS.../SS.../KS..., presne v tomto poradí. - Variabilný a špecifický symbol majú najviac 10 číslic, konštantný najviac 4, a všetky tri len číslice.
- Celý
EndToEndId, aj s prefixami a prípadným textom naviac, nesmie presiahnuť 35 znakov. EndToEndIdsa v rámci súboru nesmie opakovať: každá transakcia potrebuje vlastnú, jedinečnú hodnotu.- Po každej úprave XML spustite kontrolu znova: banka validuje súbor nanovo pri každom importe.
Skontrolujte to za 30 sekúnd
Vložte svoj pain.001 súbor do SEPA pain.001 Doctor a nástroj priamo v prehliadači skontroluje poradie, dĺžku aj formát VS, ŠS a KS v EndToEndId.
Sources
- Tatra banka: Prenosový formát pain.001.001.03 v štruktúre XML. Popis polí GrpHdr a PmtInf pre import hromadných príkazov.
- VÚB, a.s.: Popis formátu pre SEPA úhrady - SCT. Špecifikácia polí PmtId a EndToEndId pri importe SEPA úhrad.
- ČSOB: BusinessBanking Lite a SEPA. Konvencia zápisu VS/ŠS/KS v poradí /VS.../SS.../KS... do EndToEndId, s príkladmi zlého poradia.
- ISO 20022: iso20022.org. Definícia dátového typu Max35Text, ktorým je obmedzené pole EndToEndId v pain.001.001.03.
- European Payments Council: europeanpaymentscouncil.eu. SEPA Credit Transfer scheme rulebook, na ktorom stavia štruktúra pain.001 správy.