Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mod10() på bara clearingnummer #15

Open
SorenKrokfors opened this issue May 1, 2021 · 16 comments
Open

Mod10() på bara clearingnummer #15

SorenKrokfors opened this issue May 1, 2021 · 16 comments

Comments

@SorenKrokfors
Copy link

SorenKrokfors commented May 1, 2021

Hejsan!

Håller på och portar kontonummer.js till C# och jag har kikat i https://www.bankgirot.se/globalassets/dokument/anvandarmanualer/bankernaskontonummeruppbyggnad_anvandarmanual_sv.pdf och får inte riktigt tolkat denna rad mod10(number) && (clearing.charAt(0) === "8" ? mod10(clearing) : true); i javascript över till C#. Varför räknar du mod10(clearing) ser inte att man skall behöva räkna de enligt pdf filen. Kan du hjälpa mig och förklara koden lite?

@swantzter
Copy link

swantzter commented May 1, 2021

Det är Swedbank som I sina system skriver ut clearingnummer som startar på 8 med en femte siffra, en checksiffra.

Det verkar bero på att alla deras konton med clearingnummer som börjar på 8 är typ 2 (dvs clearingnummret är inte med i beräkningen av kontrollsiffran) och då tyckte Swedbank det blev otydligt, så de la till en kontrollsiffra på clearingnummret också. Den femte siffran är oväsentlig för clearingsystemet (som ju bara använder fyra siffror) utan endast de första fyra används i själva överföringen.

Försökt samla allt i detalj på http://kontonummer.se/ dock inte hittat en källa på det här än mer än ett samtal jag hade med Swedbank

@SorenKrokfors
Copy link
Author

Tack för infon, jag gjorde nu då så att om clearingnummret börjar på 8 så skall kontrollsiffra kontrolleras på både clearingnumret och på kontonumret var för sig.

@NiKiZe
Copy link

NiKiZe commented Feb 21, 2022

Swedbank har en js implementation för att räkna ut IBAN på: https://www.swedbank.se/privat/betala-och-overfora/iban-och-bic.html den har flera kontroller som verifierar hur beräkningen går till.
Jag har plockat ut den och försökt göra den mer lättläst, finns på
https://jsfiddle.net/mzwe8coh/1/

Är dock fundersam på om det finns några exempel av det som nämns om 4 siffror på swantzter/kontonummer@4418944#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5R255-R258

@swantzter
Copy link

swantzter commented Feb 21, 2022

Biten med 4 siffror på clearingnumret är egentligen lite av en implementationsdetalj, om du bara skriver första 4 siffrorna på ett av Swedbanks 8-clearingnumer så kommer det skickas rätt, eftersom det är så BGC's system funkar.

Tyvärr har jag inga faktiska exempel på gamla Swedbanknumer utan kontrollsiffra, utan kommer bara från BGC's dokumentation och Swedbanks support. Det är väl dock rimligt att tänka sig att om kontonumret inte hade kontrollsiffra vid något tillfälle hade inte clearingnukret det heller.

Edit: läste visst inte hela tråden så missade att jag redan sagt delar av det här, sorry

@NiKiZe
Copy link

NiKiZe commented Feb 24, 2022

Vad det gäller swedbank så står det i https://www.bankgirot.se/globalassets/dokument/anvandarmanualer/bankernaskontonummeruppbyggnad_anvandarmanual_sv.pdf : kommentar 3

I sällsynta fall förekommer dock Swedbanks kontonummer som inte alls är kontrollerbara med kontrollsiffra.

Många som implementerar Iso20022 kräver 5 siffror i clearing för swedbank-8, men att lägga på checksiffran är inga konstigheter.
Även om clearingen inte använder det, så kräver mottagarna av filerna dessa, och det verkar även ske i olika format hos olika banker.

För att undvika specialhanteringen i dessa olika format så är det många som tittar på att använda IBAN direkt istället.

@SorenKrokfors
Copy link
Author

SorenKrokfors commented Feb 24, 2022 via email

@NiKiZe
Copy link

NiKiZe commented Feb 25, 2022

Hej! Har på jobbet implementerat ISO 20022 till alla 5 stor banker i Sverige och jag kan berätta att använda IBAN i alla lägen inte är möjligt och att vissa banker inte vill ha 5 siffror för löneutbetalningar men kan hantera de för leverantörs fakturor. Så de är ganska komplicerat just nu pga att bankerna inte alls är klara på sin sida.

  • Gissar att du då har byggt specialhantering där användaren "väljer bank" och sedan skapas det för filmottagarens specifika krav? t.ex SEBs fil som har en hel del egenheter beroende på mottagande konto.
  • Har du exempel där användning av IBAN inte är möjligt?
  • Har du exempel på mottagare av fil där de inte vill ha 5 siffror för clearing av swedbank(8) konton?

Komplicerat minst sagt ;)

@tombombadilll
Copy link

Jag har också en fundering gällande denna kodrad i valideringen då jag portat detta till PHP.
mod10(number) && (clearing.charAt(0) === "8" ? mod10(clearing) : true);

Denna rad kommer ej att fungera för de kontonummer som ej går att validera hos Swedbank. Dvs, mod10(..) kommer bli false för ett ej validerbart kontonummer vilket i sin tur gör att hela valideringen returnerar false. Var detta tanken eller något som behöver korrigeras?

@swantzter
Copy link

@tombombadilll jo, så tyvärr kan man inte använda validering på swedbank's 8xxx konton för att blockera indata, utan endast för att varna à la "något ser fel ut, dubbelkolla, tryck spara om det stämmer trots allt"

@NiKiZe
Copy link

NiKiZe commented Aug 14, 2023

Alla Swedbank konton i 8000-8999 presenteras med kontrollsiffra.

Enligt Swedbank själva, validerar inte kontot på deras sida #15 (comment) så är det enligt Swedbank inte ett giltigt konto.
Kommentaren i bankgirots dokumentation kan numera ignoreras.
Bland flera tusen faktiska konton så har jag inte sett något som inte validerar. (Bortsett ifrån löneadministratörer som envisas med att utelämna 5e siffran, men då validerar ändå resten)

@tombombadilll
Copy link

Tack för snabb feedback @swantzter och @NiKiZe
Denna gång var det falskt alarm då numret från kunden var felaktigt...så vi har inte heller stött på något konto än som inte validerat. :)
Vet ni om det bara är väldigt gamla konton som ej går att validera. Dvs, alla nya konton från Swedbank validerar? Tänker att de konton som ej går att validera sällan används numera.

@swantzter
Copy link

@tombombadilll jo det stämmer, Swedbank utfärdar inga nya kontonummer som inte går att validera. Informationen om konton som inte går att validera säger dock alltid bara "gamla" eller "mycket gamla" men preciserar inte närmare innan vilket årtionde de menar, så det är svårt att säga bu eller bä. Har dock inte stött på något sådant nummer själv så antagligen som du säger är de få och sällan använda.

@NiKiZe
Copy link

NiKiZe commented Aug 23, 2023

Enligt Swedbank själva vid kontakt med dem så finns det inga konton alls som inte validerar. Se #15 (comment)
Ju mer jag grävt i detta, ju mer gissar jag i att ursprunget till kommentaren är att någon har försökt att validera med 5e siffran ifrån clearing som del av kontot, vilket så klart blir fel. Men samtidigt fått validerat av Swedbank att det är ett giltigt konto. Och myten har uppståt.
Att ingen sett ett sådant konto stärker det.
Jag tror sedan att den medarbetare på Swedbank som fått svara på frågor kring detta själv har fått gissa och då sagt gammla konton för att förklara bankgirots kommentar.

Ytterligare en datapunkt i det hela är Swedbanks internetbank som inte tillåter konton som inte fullt validerar.

Jag har även mailat Bankgirot/Swedbank och bett dem att ta bort den felaktiga kommentaren.

@NiKiZe
Copy link

NiKiZe commented Nov 7, 2023

Svar från bankgirot, efter att först ha fått

"Den delen är fortsatt gällande. Dvs. det förekommer fortsatt i (sällsynta fall) konton som inte kan kontrolleras med kontrollsiffra. Det vore alltså fel att plocka bort den texten."

Här påpekade jag att deras support tidigare hänvisat till IBAN sidan och de har nu återkommit igen med följande:

Efter mycket om och men har jag nu fått ett nytt svar där Swedbank dementerar att det finns undantag.
"Jag har fått återkoppling från mina kollegor som arbetar med bankens kontonummer att svaret jag fick förra gången – ”det förekommer fortsatt i (sällsynta fall) konton som inte kan kontrolleras med kontrollsiffra” är fel – alla våra konton ska vara kontrollerbara med kontrollsiffra."
Jag kommer att uppdatera vårt dokument Bankernas Kontonummeruppbyggnad på vår hemsida inom kort..

Vi hoppas att det kommer snart och att systemsvergie sedan får det lite lättare :D

@swantzter
Copy link

Gött, snyggt grävt!

@NiKiZe
Copy link

NiKiZe commented Nov 15, 2023

Ändring av bangirots pdf upptäckt Bankinfrastruktur/BankData#32

Ingen notering kvar om ej validerbara konton 🎉🎉🎉🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants