cancel
Showing results for 
Search instead for 
Did you mean: 

Participate in challenges and sweepstakes

IBAN & SWIFT/BIC Validator

IBAN-SWIFT-BIC._PowerUserspng.png

 

If your company/client pays any company in another country, they will likely use IBAN (International Bank Account Number) when sending money to those accounts.

 

To save your Finance team a lot of hassle in checking and validating these, you can add this component to your forms and Apps to instantly validate and make sure that the account number given to them will work first time, every time.

 

Steps:

After opening and saving the .msapp into your environment, Import the component into your App from that App you saved

 

Insert the component control into your App:

iAm_ManCat_0-1625911598117.gif

 

 

Pass in the input values (you can use either one or you can use both!) :

 

iAm_ManCat_1-1625911597439.png

 

 

Then all you need is for your user to Type in IBAN and SWIFT values:

( You can test with any of the examples in the collection I've loaded on the OnStart, which come from www.iban.com with additional information from the ISO 13616-1:2007 standard you can view here: https://bank-code.net/iban/country-list )

 

i.e Albania, DZ580002100001113000000570

Barclay's UK SWIFTBIC: BUKBGB22

iAm_ManCat_2-1625911597445.gif

 

 

You can also responsively size this as needed (based on Height):

iAm_ManCat_3-1625911597397.gif

 

 

 

If you choose not to enter an IBAN Value or a SWIFT/BIC value, then the validator for that Input will not show, ie if you connected it only to the IBAN value, then only that IBAN validator row of the component will show.

 

 

So how does it do this? (in case you are interested)

- The Tick/Cross box is dependent on the value's numeric Modulus by 97.

The formula for this is to move first 4 characters to end of string, then convert all characters to numbers, using A=10, B=11 ... Z=35. Modulus the numeric value by 97. Since PowerApps cannot handle integers of this length, we split the first 9 out, calculate the Mod97 of those, then add it to the beginning of the string, and then next 9 until we have 9 or less characters left. The final modulus should be equal to 1 if it is a valid IBAN number (this is regardless of country, purely numerical and will work for all future IBAN countries)

- The Country checker is based on a Regex check against the ISO 13616-1:2007 standard for that Country

- The SWIFT/BIC checker is also a Regex check, although it is much simpler

 

 

Inputs involved:

IBAN - an IBAN (International Bank Account Number)

SWIFTBIC - A SWIFT/BIC standardised branch code

 

Outputs involved:

IBAN_TRIMMED

- Text Value - this is the 'financial' format of IBAN, removed of special characters, whereas the 'web' format may contain spaces. This can be used as an exported value if you wish to provide cleanup function for IBANs

BBAN

- Text Value - Local Bank account number, derived by removing the first four characters

SWIFTBIC_TRIMMED

- Text Value - The 'financial' format of SWIFTBIC, removed of special characters. 'Web' format may contain spaces.

IBAN_VALIDITY

- boolean value - true/false determined by applying the Modulus97 formula

SWIFTBIC_VALIDITY

- boolean value - true/false determined by Regex check of trimmed string

IBAN_COUNTRY

- Text Value - This is determined by using the Regex check for that country as determined by ISO 13616-1:2007

 

 

Number of Countries validated: 103
(and an additional 20 codes fall under FR, GB, FI, PT, ES countries)

 

I hope you find this useful, I have checked it manually against multiple IBAN codes from each country to ensure that they all validate correctly.

 

I know there is another IBAN component out there however it does not successfully validate all IBAN values as its formula for doing so is not based on the IBAN ISO 13616-1:2007

Comments

Dear @iAm_ManCat  ,

This component is exactly what I was looking for.

It works perfectly when I preview the app.

But when I try on Sharepoint and open a new form, the component appears as unformatted:

 

PMCVieira_0-1641482055930.png

After put the values the component looks good. 

PMCVieira_1-1641482392011.png

If I delete the values, the component looks normal as well.

I have not 'Default' values on IBAN and SWIFT fields.

I also tried to put a condition on the component to be visible only when IBAN.text is not empty, but it didn't work.

PMCVieira_2-1641482430558.png

Can you help me with this issue?

Thanks a lot for your contribution with this great functionality.

 

 

Hi @PMCVieira @ could you try making the visibility:

Len(IBAN.Text)>0