swift package - code.pfad.fr/swift (original) (raw)
import "code.pfad.fr/swift"
package swift provides methods to check the validity of an IBAN (and retrieve the BIC for some countries). Play with the demo in the browser, powered by JS+Wasm.
Example¶
// SPDX-FileCopyrightText: 2023 Olivier Charvin git@olivier.pfad.fr // // SPDX-License-Identifier: CC0-1.0
package main
import ( "fmt"
"code.pfad.fr/swift"
"code.pfad.fr/swift/bic")
var germanTestIBAN = "DE75512108001245126199"
func main() { iban, err := swift.NewIBAN(germanTestIBAN, swift.CountryBelongsToSEPA()) if err != nil { panic(err) } fmt.Println("IBAN:", iban.MaskedAndSpaced()) fmt.Println("BIC: ", bic.FromIBAN(iban).String()) }
Output:
IBAN: DE75 512* **** **** ***1 99 BIC: SOGEDEFFXXX
Index ¶
- Variables
- type BIC
- type CheckDigitsError
- type CountryCode
- type ExpectedCharType
- type FormatError
- type IBAN
- type IBANValidator
- type TooShortError
Examples¶
Variables ¶
var ErrCountryNotInRegistry = errors.New("country is not listed in the IBAN registry")
ErrCountryNotInRegistry is returned when a country is not listed in the iban registry.
var ErrCountryOutsideSEPA = errors.New("country is outside the Single Euro Payments Area (SEPA)")
ErrCountryOutsideSEPA is returned when a country does not belong to the Single Euro Payments Area.
typeBIC ¶
BIC represents the routing information as specified by ISO 9362 (also known as Business Identifier Codes (BIC), SWIFT ID or SWIFT code, and SWIFT-BIC).
funcNewBIC ¶
NewBIC uppercases a BIC and perform some basic checks (format and length). If the country code is unknown the BIC will be accepted, call CountryCode.BelongsToIBANRegistry or CountryCode.BelongsToSEPA to perform additional validation.
func (BIC)String ¶
String returns the BIC.
typeCheckDigitsError ¶
type CheckDigitsError struct { Expected uint8 Actual uint8 NationalCheck bool }
CheckDigitsError indicates that the checksum did not match the expected check digits.
func (CheckDigitsError)Error ¶
typeCountryCode ¶
CountryCode is the ISO 3166-1 alpha-2 code of the country (uppercase)
func (CountryCode)BelongsToIBANRegistry ¶
func (cc CountryCode) BelongsToIBANRegistry() bool
BelongsToIBANRegistry returns true if the country is listed in the iban registryhttps://www.swift.com/resource/iban-registry-pdf
func (CountryCode)BelongsToSEPA ¶
func (cc CountryCode) BelongsToSEPA() bool
BelongsToSEPA indicates if a country belongs to the Single Euro Payments Area according to https://www.swift.com/resource/iban-registry-pdf
typeExpectedCharType ¶
typeFormatError ¶
FormatError indicates that an unexpected character type was encountered.
func (FormatError)Error ¶
typeIBAN ¶
IBAN represents an International Bank Account Number
funcNewIBAN ¶
NewIBAN sanitizes, parses and checks an IBAN (length, format, check digit sum). See CountryBelongsToIBANRegistry and CountryBelongsToSEPA to perform country code validation. See NationalFormatCheck to additionnally verify the national format.
func (IBAN)MaskedAndSpaced ¶
func (iban IBAN) MaskedAndSpaced() string
MaskedAndSpaced returns the spaced IBAN with only the first and last 3 characters of the BBAN visible (other chars are replaced with "*").
IBANs are not secret, but it shouldn't hurt to hide parts of them. Since BBANs are longer than 11 characters, at least 5 chars will be hidden (still partially recoverable using the leading check digits). Example:
DE75 512* **** **** ***1 99
func (IBAN)Spaced ¶
Spaced returns the IBAN with spaces between every 4 characters.
func (IBAN)String ¶
String returns the IBAN, without spaces
typeIBANValidator ¶
type IBANValidator func(IBAN) error
IBANValidator makes additional checks on a given IBAN.
funcCountryBelongsToIBANRegistry ¶
func CountryBelongsToIBANRegistry() IBANValidator
CountryBelongsToIBANRegistry ensures that the country is listed in the iban registryhttps://www.swift.com/resource/iban-registry-pdf
funcCountryBelongsToSEPA ¶
func CountryBelongsToSEPA() IBANValidator
CountryBelongsToSEPA ensures that the country belongs to the Single Euro Payments Area according to https://www.swift.com/resource/iban-registry-pdf
funcNationalFormatCheck ¶
func NationalFormatCheck() IBANValidator
NationalFormatCheck checks the national rules (format and check digits), if there is a registered BBANChecker for this country code.
typeTooShortError ¶
type TooShortError struct { ActualLen int ExpectedLen int }
TooShortError indicates that the provided string is shorter than expected.
func (TooShortError)Error ¶
Source Files¶
bban.go bban_registry.go bic.go columns.go country.go iban.go
Directories ¶
| Path | Synopsis |
|---|---|
| bic | package bic computes the BIC from an IBAN (for supported countries). |
| cmd/iban | iban analyses an International Bank Account Number (IBAN). |
| internal/format | package format is used internally to describe the format of an IBAN. |
Forge ¶
https://codeberg.org/pfad.fr/swift
git clone
https://codeberg.org/pfad.fr/swift.git git@codeberg.org:pfad.fr/swift.git