cancel
Showing results for 
Search instead for 
Did you mean: 

Banking scenario

badugu_sarika
Participant
0 Kudos

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 :

Mapping

UDF RetrieveBIC:

UDF for MAPRFH2:

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.

Accepted Solutions (1)

Accepted Solutions (1)

KarthikBangeraM
Active Participant
0 Kudos

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

        }

        else

        {

            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.

Regards,

Karthik

badugu_sarika
Participant
0 Kudos

Hi Karthik,

Thankyou for your reply.

I will let you know once i implement the above code.

Here we are reading first six characters CITIRU for Russia Citi Bank. And sending to other middleware right. so before sending can we assign CITIRU to CIRU. Will this be possible here.

Please leave your reply

Regards,

SARIKA

KarthikBangeraM
Active Participant
0 Kudos

Hi Sarika,

If the first 6 characters are CITIRU then just assign CIRU to str and return as done below-

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

        {

            str = "CIRU";

        }

        else

        {

            str = BIC.substring(0, 4);

        }

       

        return str;

Regards,

Karthik

badugu_sarika
Participant
0 Kudos

Hey Karthik,

The file is sent as requested by the bank after implementing the above code with few other changes.

Thanks alot for your response.

Regards

SARIKA

Answers (1)

Answers (1)

former_member186851
Active Contributor
0 Kudos

Hello Sarika,

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

badugu_sarika
Participant
0 Kudos

yeah, for other countries BIC codes are CITIPRXX , CITIBRBRXX, CITIUSXX etc..

former_member186851
Active Contributor
0 Kudos

So all the countries will have Country code from 4 to 6 digits right?

so do a substring(4.7),so that PR,BR,US,RU will be retrieved.

badugu_sarika
Participant
0 Kudos

Here we are reading only first four charcters of BIC code actually.

So if we read First six characters BIC.substring(0,6) then if it is CITIRU what condition can i give.

If we read six character code all banks get affected . So without affecting other banks and othr countries of CITI bank what can I do.

former_member186851
Active Contributor
0 Kudos

Sarika,

why u need first four characters?

badugu_sarika
Participant
0 Kudos

For all banks we check first four characters i.e CITI , RBSO etc,

In header we are sending BIC code , MSgID,ID,PI MsgID. So depending on BIC code othr middleware sends to Banks.

So now we are sending CITI as BIC .Cannot change as it affects other banks.

If i read Six characters i.e CITIRU can I put some condition here and then send the BIC with FOur character to other middleware.

former_member186851
Active Contributor
0 Kudos

Sarika,

Your condition is not clear.

For Russin yo need to get RU from CITIRUXXX

And other countries you need to get first 4 characters like CITI,RBSO from CITIUSXXX,RBXOXX.

Am I correct?

badugu_sarika
Participant
0 Kudos

Not countries Raghuram.

My requirement is to send Russia payment File differntiated .

THe present scenario is we are taking BIC code and reading 4 characters (i.e Bank code). so middleware will recv only bank name and not country details.So middleware just route the details to bank by giving same filename to all payment file of all countries of bank.

I have to do something which CITI RU is identified in anothr middleware and their payments are sent with differnt file name as requested by bank.

former_member186851
Active Contributor
0 Kudos

So if its CITI RU alone you need some condition so that middleware will identify and send it with diffferent filename.am I correct?