Skip to Content

Banking scenario

Hi ,

Here the requirement is russian citi bank wants their payment file to be differentiated from other bank's payment file. i.e Naming convention.

So from PI we are sending header details i.e BIC code( Bankcode) , ID, MsgID, PI runtime Msgid to another middleware . So in that middleware depending on the BIC value they send to banks. All the banks will recv all the header details. depending on BIC value they differ their files.

PI receives 8 length BIC code eg: CITIRUXX Here RU is tells which country it belongs to.So now for all banks we are readng first 4 characters of BIC code and sending payment files.

Source and target both same :


UDF RetrieveBIC:


So what kind of code changes will i require to do.

We are only reading first 4 characters of BIC code. So for russia how can i make a condition.

Pls leave your comments.

Add comment
10|10000 characters needed characters exceeded

  • Follow
  • Get RSS Feed

2 Answers

  • Best Answer
    Dec 14, 2015 at 04:33 PM

    Hi Sarika,

    Why don't you try the below tweak in the code to enable middleware identify that this has to be sent to CITI Russia.

    if(BIC.substring(0, 6).equalsIgnoreCase("CITIRU"))


    str = BIC.substring(0, 6); //or any other string which will help middleware to know that this belongs to CITI Russia




    str = BIC.substring(0, 4);


    return str;

    This code will return CITIRU (if the BIC value is CITIRU) else will return the Bank names (as per existing logic). Let me know if this is feasible or if there are length restrictions for the returned BIC value.



    Add comment
    10|10000 characters needed characters exceeded

  • Dec 14, 2015 at 10:59 AM

    Hello Sarika,

    So for Russia,the BIC will be CITIRUXX ,for other countries can you provide some sample BIC code?

    Add comment
    10|10000 characters needed characters exceeded