Support Logout NAV Navbar

Retail Banking Setup

Import Workspace

Follow the below steps for importing a existing workspace -

Step-by-Step setup

  1. Download zip files from artifactory which contains required jars to be deployed

    • Retail banking jars were used to handle business logic specific to all use-cases like Fund Transfer, Balance enquiry, Bill Payment etc. Retail Banking jars location click here
    • Common jars help to provide a generic implementation for all Products like Retail Banking, Corporate Banking. Common jars location click here then extract and deploy in folowing location :-
      1. Tomcat :-
        • Configure location for usage of jars on $TOMCAT_LOCATION/CONF/Catalina/morfeus.xml TOMCAT_LOCATION → location where we have deployed out tomcat instance
        • Dump all the jars obtained from above link in configured path.
      2. JBoss :-
        • Need to download Morfeus war for configuring the jars.Morfeus War for Jboss location click here
        • Configure location for usage of jars on $JBOSS_LOCATION/morfeus/WEB-INF/jboss-deployment-structure.xml JBOSS_LOCATION → location where we have deployed out jboss instance for eg :-
        • Dump all the jars obtained from above link in configured path($JBOSS_LOCATION standalone/deployments).
      3. Weblogic :-
        • Need to Configure the CommonJars.war in deployment-morfeus and we need to packed all the retail-banking jars into CommonJars.war .
        • Configure location for usage of jars on $Weblogic_LOCATION/CommonJars/WEB-INF/lib/rb.jar, Weblogic_LOCATION → location where we have deployed out jboss instance
        • Dump all the jars obtained from above link in configured path.
  2. Download rb-deployments.zip folder from the artifactory which contains properties, templates, hooks, and messages. ($RESOURCE_LOCATION - > location from where you have downloaded file from here)

  3. Load the configurations to DB.
    You can insert values either by database insertion or there is an Post rest API call {protocol}://({domainName}/morfeus/v1/retailBankingProperty/{botId}/{botDomainId}) with body as a file path of a retail-banking.properties or array list of ruleCode and ruleValue object or both ex:- http://localhost:8080/morfeus/v1/retailBankingProperty/2/1 body:

      {
         "path":"$RESOURCE_LOCATION/properties/retail-banking.properties"
      }
    
  4. Admin Configurations Open admin console to import messages, templates, and hooks If you already have workspace created (image 1.2), then can straight away import the files

Add_Workspace

image 1.1 - fresh admin landing page

Workspace

image 1.2 - existing created workspace on the landing page

Click on Add Workspace or Add New Workspace (image 1.1) >> provide workspace name (example:- Develop) >> choose "banking" in product type (image 1.3)

Create_Workspace

image 1.3 - selecting the product type

→ Choose workspace to be configured for RB and you’ll be ended with below landing page

Landing_Workspace

image 1.4 - landing page after selecting Workspace

→ Manage products (image 1.4) >> Messages (image 1.5) >> import (image 1.6) >> choose file $RESOURCE_LOCATION/messages/rb-en-us-any-messages.json

Manage_Products

image 1.5 - landing page of Manage Products

Messages

image 1.6 - landing page of Messages

→ Manage Templates (image 1.6) >> import (image 1.7) >> choose file $RESOURCE_LOCATION/templates/rb-v2-templates.json

Templates

image 1.7 - landing page of Manage Templates

→ Manage Hooks (image 1.5) >> import (image 1.9) >> choose file $RESOURCE_LOCATION/hooks/rb-consolidated-hooks.json (You can also import specific use-case related hooks which are available in the same folder)

Hooks

image 1.8 - landing page of Manage Hooks

Stub Data Providing to RB using Microservice

Pre-Defined:-

  1. Download RB Stub Bank Integration from artifactory on the location given below and move that to the location $TOMCAT_LOCATION/webapps from here

  2. Download RB Stub Bank consolidated integration jar from artifactory on location give below and move that to the location which we provided on $TOMCAT_LOCATION/CONF/Catalina/morfeus.xml

  3. Download resource file from artifactory($INTEGRATION_RESOURCE_LOCATION) from here with body as a file path -> $INTEGRATION_RESOURCE_LOCATION/properties/microservice-rb.properties and then $INTEGRATION_RESOURCE_LOCATION/properties/microservice-api.properties one after other ex:- http://localhost:8080/morfeus/v1/retailBankingProperty/2/1 body: JSON { "path":"$INTEGRATION_RESOURCE_LOCATION/properties/microservice-rb.properties" }

  4. Open admin console to import integration hooks->Manage Hooks (image 1.4) >> import (image 1.8) >> choose file $INTEGRATION_RESOURCE_LOCATION/hooks/rb-consolidated-hooks.json

Custom

To Check the Customization of Banking Integration Please check here

Product Use cases

The retail banking business solution offers a number of out-of-the-box (OOTB) conversation use cases. The use cases have been designed considered standard banking process flows. Any changes to conversational flows due to business process differences can be achieved by change in configurations or simple customization.

The supported use cases are listed below

Inquiry Service requests Transactions
Generic Balance inquiry

Account inquiry

Account activity

Portfolio inquiry

Statement

ATM / Branch locator

SI inquiry

Office hours

Profile update Demand draft request

Forex rate

Call back request

Live agent transfer

Account nickname

Report fraud / dispute

Generic service request

Savings & Checking accounts View payees

View billers

Spend analysis

Autopay - view

Biller - view

Nominee details

Interest rate inquiry

Account inquiry

Cheque book request

Payee - register

Payee - cancel

Stop payment

Biller - cancel

Recharge

Biller - register

Autopay - cancel

Autopay - register

Autopay - modify

Fund transfer - adhoc

Fund transfer - own

Fund transfer - third party

Payment - Credit Card

Payment - loan

Payment - third party

Payment - biller

Payment - adhoc biller

Payment - P2P

Payment - schedule

Payment - cancel

Payment - biller

Payment - Credit Card other bank

Collect request

Payment - prepaid

Loans Due inquiry

Due date

Tenor details

Closure details

Deposits Nominee details

Interest rate inquiry

Deposit details

Tenor details

Closure details

Open Fixed Deposit

Close Fixed Deposit

Credit card Account inquiry

View loyalty points

View payees

View billers

Spend analysis

Autopay - view

Biller - view

Charge levied

Due details

Card details

Convert to Installment plan

Block - temporary

Reissue card

PIN change

Block card

International usage - Disable

Dispute a card transaction

Change of limit

PIN change

Card activation

International usage - enable

Rewards redemption

Biller - cancel

Recharge

Biller - register

Autopay - cancel

Autopay - register

Autopay - modify

Change of limit

Payment - biller

Account Inquiry


Overview

Use case name Account Inquiry
Type Inquiry
Intent qry-accountenquiry
Entities
  • Account number
  • Account holder name
  • Account opening date
  • Branch
  • Maturity date (deposits)
  • Nominee name
Banking products supported All
Channels supported Web, Mobile, FB messenger, Alexa
Login Yes
2FA Yes
API availability Yes
Integrations done NA
Stub data availability Yes

Features

Summary

  1. Users can check for additional details on the account like account opening date, branch etc.

Detailed

  1. User is interested in knowing more details on a relationship like

    • Account opening date Shivam
    • Account branch
    • Deposit maturity date
    • Loan last payment date
    • Nominee details
    • Card limits
  2. System will request selection on the specific account, card or loan on which additional details are requested.

  3. Based on the nature of additional information requested, a template with account ID , name and requested detail
    ex: maturity date will be shown

Flow CX

Note: This can be flowchart / GIF or screenshot to represent OOTB flow

Facebook Flow -

acc_enquiry_login acc_enquiry_login_page acc_enquiry_acc_list acc_enquiry_details

Configurations

Generic Configurations

The Following are the generic default configurations available with setup and are applicable for all channels.

  1. This property defines with all products that are supported in Balance Inquiry use-case qry-accountenquiry_ACCOUNT_CATEGORIES=casa,creditcard Supported account Categories are : casa, creditcard, debitcard, loan, deposit, overdraft, forexcard
  2. This property defines with the account types supported for Accounts qry-accountenquiry_SUPPORTED_ACCOUNT_TYPES=checking
  3. Supported account types are : savings,checking
  4. The order of listing accounts in Balance Inquiry. ACCOUNT_CATEGORY_SORT_ORDER=casa, creditcard
  5. The values are to be in sync with whatever configured for qry-accountenquiry_ACCOUNT_CATEGORIES.
  6. Sort and list the accounts based on their balances. SORT_ACCOUNTS_BY_HIGH_BALANCE=yes
  7. Set it to 'no' if need to show the accounts as received from API.
  8. The Following are the list of product attributes that are supported as a default set of implementation. (statementbalance,minimumpayment,minpayment,outstandingbalance,currentbalance,latestbalance,duedate,expirydate,rewardpoints,rewardpoint,totalbalance,closingbalance,ledgerbalance,floatbalance,holdbalance,dueamount,accountopened,loyaltypoint,availablelimit,totallimit,minimumdue,mindue,lastpaymentamount,lastpaymentdate,lastmonthbill,lastmonthdue,basebranch,branch,branchname,branchaddress,nominee,tenure,interestrate,installmentamount,enddate,emiamount,accountopening,outstanding,rateofinterest,maturitydate,maturityamount,maturityinstruction,startdate,accumulatedinterest,renewaldate,cumulativeamount,currentmonthbill,presentamount,balance,lastbill,totaldue,minimumamount,minimumamountdue,nextpaymentamount,primaryowner,jointowner,nextpaymentdate,openingdate,emidate,nextemidate)
  9. Based on the requirement all the attributes can be enabled by appending to the following property. qry-accountenquiry_SUPPORTED_MODIFIERS=statementbalance,minimumpayment
  10. The Following property is to tell bot wrt attribute responses, whether need to be as a Template or Text response. qry-accountenquiry_RESPONSE_TYPE=TEMPLATE Supported values : TEMPLATE or TEXT
  11. Will the accountSummary API list all accounts and its balances or need to do a separate call to fetch balance, if separate API needs to be invoked then the following need to be set to true. IS_BALANCE_SEPARATE_API_CALL=false Supported boolean values are 'true' or 'false'
  12. Configured supported products are casa & creditcard, Credit Card api is giving response with card details & balances where as Current Account & Savings Account API is not with balance details and need to invoke separate API to fetch balance, in which case we will configure this property based on product. INVOKE_CASA_BALANCE_API=true
  13. From the received balance API response, all the attributes that need to be mapped back for display need to be configured in this property. ACCOUNT_BALANCE_PROPS_FROM_API=balance,availableBalance
  14. If balance API is invoked for each product, then the attributes can be configured for each of the products as LOAN_BALANCE_PROPS_FROM_API=outstandingbalance,installmentAmount And same way for other products: CREDIT_CARD,DEBIT_CARD,DEPOSIT
  15. Do we have multiple api for individual productType or one api to fetch all poroductType summaries IS_MULTIPLE_API_CALL_FOR_GET_ACCOUNTS=false
  16. If we need to call multiple APIs to fetch all the supported products, then accordingly this need to be set to True. IS_ACCOUNT_DETAILS_SEPARATE_API_CALL= false
  17. If details API is set to true and to invoke details API based on product, we need the set the following property to true. INVOKE_ACCOUNT_DETAILS_API=true
  18. other supported products are,LOAN,CREDIT_CARD,DEBIT_CARD,DEPOSIT. Replacing the product name with ACCOUNT, will be fetching details accordingly.
  19. For voice channels if we don't want user to select an acc to know its balance, then by by setting this value it reads the balance of an account that is set as preferred/default account. qry-accountenquiry_aa_USE_DEFAULT_ACCOUNT=yes qry-accountenquiry_gh_USE_DEFAULT_ACCOUNT=yes
  20. Details that need to be mapped back to Product can be specified here based on Product. ACCOUNT_DETAILS_PROPS_FROM_API=ifscCode,bankName other supported products are, LOAN, CREDIT_CARD, DEBIT_CARD, DEPOSIT. Replacing the product name with ACCOUNT, will be fetching details accordingly.
  21. Invoke balance api on account mismatch when user uttered like show my balance of account number 1234 (where 1234 account is not exists) Here need to show accounts without balance after selection needs to hit an api and show particular account balance after balance api called) by default it is true INVOKE_BALANCE_API_ON_MISMATCH=true
  22. support for different template based on modifier - say if you would like to render custom template for showing account details qry-accountenquiry_CUSTOM_TEMPLATES_FOR_MODIFIERS*=*caniuse,account-detail,card-detail

casa modifier response type, by default template

availablebalance_RESPONSE_TYPE=TEMPLATE

currentbalance_RESPONSE_TYPE=TEMPLATE

totalbalance_RESPONSE_TYPE=TEMPLATE

allbalances_RESPONSE_TYPE=TEMPLATE

accountopened_RESPONSE_TYPE=TEMPLATE

credit card modifiers response type

outstandingbalance_RESPONSE_TYPE=TEMPLATE

account-open_RESPONSE_TYPE=TEXT

creditlimit_RESPONE_TYPE=TEXT

modifiers to be applied for account categories

account modifiers

availablebalance_ACCOUNT_CATEGORIES=casa

currentbalance_ACCOUNT_CATEGORIES=casa

totalbalance_ACCOUNT_CATEGORIES=casa, creditcard

allbalances_ACCOUNT_CATEGORIES=casa, creditcard

accountopened_ACCOUNT_CATEGORIES=casa,deposit,loan

closingbalance_ACCOUNT_CATEGORIES=casa

ledgerbalance_ACCOUNT_CATEGORIES=casa

floatbalance_ACCOUNT_CATEGORIES=casa

holdbalance_ACCOUNT_CATEGORIES=casa

loyaltypoint_ACCOUNT_CATEGORIES=casa

reward_ACCOUNT_CATEGORIES=casa

cash_ACCOUNT_CATEGORIES=casa

money_ACCOUNT_CATEGORIES=casa

fund_ACCOUNT_CATEGORIES=casa

networth_ACCOUNT_CATEGORIES=casa,creditcard

worth_ACCOUNT_CATEGORIES=casa

portfolio_ACCOUNT_CATEGORIES=casa,creditcard

debt_ACCOUNT_CATEGORIES=creditcard

ifsccode_ACCOUNT_CATEGORIES=casa

basebranch_ACCOUNT_CATEGORIES=casa

branch_ACCOUNT_CATEGORIES=casa,creditcard,loan,deposit

branchname_ACCOUNT_CATEGORIES=casa,creditcard,loan,deposit

branchaddress_ACCOUNT_CATEGORIES=casa,creditcard,loan,deposit

nominee_ACCOUNT_CATEGORIES=casa,deposit

primary_ACCOUNT_CATEGORIES=casa,creditcard

overdraftledgerbalance_ACCOUNT_CATEGORIES=casa

credit card modifiers

outstandingbalance_ACCOUNT_CATEGORIES=creditcard

statementbalance_ACCOUNT_CATEGORIES=creditcard

dueamount_ACCOUNT_CATEGORIES=creditcard

minimumdue_ACCOUNT_CATEGORIES=creditcard

mindue_ACCOUNT_CATEGORIES=creditcard

minimumpayment_ACCOUNT_CATEGORIES=creditcard

minpayment_ACCOUNT_CATEGORIES=creditcard

duedate_ACCOUNT_CATEGORIES=creditcard,deposit,loan

rewardspoints_ACCOUNT_CATEGORIES=creditcard

rewardpoints_ACCOUNT_CATEGORIES=creditcard

rewardpoint_ACCOUNT_CATEGORIES=creditcard

availablelimit_ACCOUNT_CATEGORIES=creditcard

totallimit_ACCOUNT_CATEGORIES=creditcard

spendlimit_ACCOUNT_CATEGORIES=creditcard

lastpaymentdate_ACCOUNT_CATEGORIES=creditcard.loan

lastpaymentamount_ACCOUNT_CATEGORIES=creditcard,loan

didiuse_ACCOUNT_CATEGORIES=creditcard

caniuse_ACCOUNT_CATEGORIES=casa,creditcard

expirydate_ACCOUNT_CATEGORIES=creditcard,debitcard

lastmonthbill_ACCOUNT_CATEGORIES=creditcard

lastmonthdue_ACCOUNT_CATEGORIES=creditcard

minimumamountdue_ACCOUNT_CATEGORIES=creditcard

dueamount_minimumamountdue=minimumdue

minimumamountdue_dueamount=minimumdue

rewardpoints_rewardpoint=rewardpoint

loan modifiers

tenure_ACCOUNT_CATEGORIES=loan,deposit

interestrate_ACCOUNT_CATEGORIES=loan,deposit

rateofinterest_ACCOUNT_CATEGORIES=loan,deposit

howmanyinstallments_ACCOUNT_CATEGORIES=loan

installmentamount_ACCOUNT_CATEGORIES=loan

enddate_ACCOUNT_CATEGORIES=loan

emiamount_ACCOUNT_CATEGORIES=loan

emidate_ACCOUNT_CATEGORIES=loan

nextemidate_ACCOUNT_CATEGORIES=loan

loanamount_ACCOUNT_CATEGORIES=loan

principalamount_ACCOUNT_CATEGORIES=loan,deposit

outstanding_ACCOUNT_CATEGORIES=creditcard,loan

nextpaymentamount_ACCOUNT_CATEGORIES=creditcard,loan

nextpaymentdate_ACCOUNT_CATEGORIES=creditcard,loan

deposit modifiers

maturitydate_ACCOUNT_CATEGORIES=deposit

whencaniwithdraw_ACCOUNT_CATEGORIES=deposit

maturityamount_ACCOUNT_CATEGORIES=deposit

maturityinstruction_ACCOUNT_CATEGORIES=deposit

startdate_ACCOUNT_CATEGORIES=deposit

accumulatedinterest_ACCOUNT_CATEGORIES=deposit

renewaldate_ACCOUNT_CATEGORIES=deposit

cumulativeamount_ACCOUNT_CATEGORIES=deposit

openingdate_ACCOUNT_CATEGORIES=deposit,casa,loan,creditcard

modifier precedence

duedate_renewaldate=renewaldate

availablelimit_cashlimit=cashlimit

duedate_outstanding=duedate

Customisation

Integration Customisation

Checkout the RB Stub Integration Services code from the Repo for quick and easy integration. click here

Integrate with the Bank Login API using the given code, deploy and start working.

Request / Response

Sample Request-Response in the case of one API returning accounts with balances.

Along with accounts/cards summary call itself

Request:

Request URL : http://localhost:8080/banking-integration/v1/{customerId}/accounts/{productType}

    customerId - String

    productType - String (casa, deposit, creditcard, debitcard, loan)

Response:

    Status : 200

    Meaning: OK

    Description: OK

Schema :

{

"accounts": \[

{

"accountId": "string",

"accountName": "string",

"accountNumber": "string",

"balance": {

"amount": 0,

"availableBalance": 0,

"currencyCode": "string",

"currentBalance": 0

},

"bankName": "string",

"branchAddress": "string",

"branchId": "string",

"branchName": "string",

"category": "string",

"displayAccountNumber": "string",

"lastStatementBalance": 0,

"lastStatementDate": "string",

"openingDate": "string",

"product": "string",

"productCode": "string",

"status": "ACTIVE",

"type": "SAVINGS"

}

],

"result": {

"message": "string",

"messageCode": "string",

"status": 0

}

}

Separate call for Balance

If need to do a separate API call to fetch balance for account list received in above call.

Request:

Request URL : http://localhost:8080/banking-integration/v1/{customerId}/accounts/{productType}/{accountId}/balance

    customerId - String
    productType - String (casa, deposit, creditcard, debitcard, loan)

Response:

    Status : 200
    Meaning: OK
    Description: OK

Schema :

{

"accountSelected": {

"accountId": "string",

"balance":

{

"amount": 0,

"availableBalance": 0,

"currentBalance": 0,

"monthlyAverageBalance": 0,

"currencyCode": "string"

}

},

"result": {

"message": "string",

"messageCode": "string",

"status": 0

}

}

Separate API to fetch Details

Request:

Request URL: http://localhost:8080/banking-integration/v1/{customerId}/accounts/{productType}/{accountId}

    customerId - String
    accountId - String
    productType - String (casa, deposit, creditcard, debitcard, loan)

Response:

    Status : 200
    Meaning: OK
    Description: OK

Schema :

{

"accountSelected": {

"accountId": "string",

"balance":

{

"amount": 0,

"availableBalance": 0,

"currentBalance": 0,

"monthlyAverageBalance": 0,

"currencyCode": "string"

}

},

"result": {

"message": "string",

"messageCode": "string",

"status": 0

}

}

Following are the Balance Request-Response objects using which one can integrate with product with own integration coding. By pointing the following RB property value to integration camel route id for supported productTypes.

ACCOUNT_ROUTE_URI=direct:demobank.stub.getAccounts (Default value for Current Account & Savings Account)

CREDIT_CARD_ROUTE_URI=direct:demobank.stub.getCreditCards

DEBIT_CARD_ROUTE_URI=direct:demobank.stub.getDebitCards

DEPOSIT_ROUTE_URI=direct:demobank.stub.getDeposits

LOAN_ROUTE_URI=direct:demobank.stub.getLoans

FOREX_CARD_ROUTE_URI=direct:demobank.stub.getForexCards

Class Diagrams

Account Inquiry Request

Account Inquiry Request


Fig 1 Savings Account

Savings Account


Fig 2 Checking Account

Checking Account


Fig 3 Credit Card

Credit Card


Fig 4 Debit Card

Debit Card


Fig 5 Loan Account

Loan Account


Fig 6 Deposit Account

Deposit Account


Fig 7 OverDraft Account

OverDraft Account


Fig 8 Prepaid Card

Prepaid Card


Fig 9 Forex Card

 Forex Card

Response Customisation

Generic

  1. The properties needs to be formatted properly so that on response visible on templates should be in proper like 100000 -> 1,10,000

ACCOUNT_AMOUNT_PROPS_TO_BE_FORMATTED=balance,availableBalance

Product Images:

Images can be displayed differently for each product in template.

We configure images to be shown on templates as described below

Example: -

Accounts Specific Images: qry-accountenquiry_VISA_IMAGE_URL={S3_DOMAIN_NAME}/visa_card_2x.png

SAVINGS_IMAGE_URL={S3_DOMAIN_NAME}/savings_account_2x.png

CHECKING_IMAGE_URL={S3_DOMAIN_NAME}/current_account_2x.png

DEPOSIT_IMAGE_URL={S3_DOMAIN_NAME}/deposit_account_2x.png

LOAN_IMAGE_URL={S3_DOMAIN_NAME}/loan_account_2x.png

SAVINGS_SINGLE_IMAGE_URL={S3_DOMAIN_NAME}/savings_account_2x.png

CHECKING_SINGLE_IMAGE_URL={S3_DOMAIN_NAME}/current_account_2x.png

DEPOSIT_SINGLE_IMAGE_URL={S3_DOMAIN_NAME}/deposit_account_2x.png

LOAN_SINGLE_IMAGE_URL={S3_DOMAIN_NAME}/loan_account_2x.png

Card Specific Images:

qry-accountenquiry_MASTER_IMAGE_URL={S3_DOMAIN_NAME}/master_card_2x.png

qry-accountenquiry_AMEX_IMAGE_URL={S3_DOMAIN_NAME}/default_card_2x.png

qry-accountenquiry_DINERS_IMAGE_URL={S3_DOMAIN_NAME}/default_card_2x.png

qry-accountenquiry_MASTER_SINGLE_IMAGE_URL={S3_DOMAIN_NAME}/master_card_2x.png

qry-accountenquiry_AMEX_SINGLE_IMAGE_URL={S3_DOMAIN_NAME}/default_card_2x.png

qry-accountenquiry_DINERS_SINGLE_IMAGE_URL={S3_DOMAIN_NAME}/default_card_2x.png

We can customise response on template using template editor as shown here

line

Messages:-

Kindly refer messages for this use case on admin by selecting respective category ( like Balance Inquiry, Balance Common, Common) as shown here

Templates:-

Kindly refer Templates for this use case on admin by selecting a category (like Balance Inquiry, Balance Common, Common) as shown here

you can make templates as carousel as we support by default list by using templateEditor

template Id's:-

BalanceViewSingleAccount -> If accounts size is equals to one and which we need show for confirmationneed to validate for all flow like a confirmation rather than selecting an account on both mismatch and normal case

BalanceViewWithGetDetails -> If accounts less than or equals to number of accounts to be displayed

AccountsListWithShowMoreWithGetDetails -> If accounts more than number of accounts to be displayed

BalanceViewWithGetDetails -> After clicking show more button on mismatch and in normal as well

If account mismatch happen on utterance level

Say user uttered like show nominee for acc no 2015 where 9015 is not exists

qry-accountenquiry_ACCT_SELECT_TEMPLATE_ID=BalInqAcctSelection

If accounts more than number of accounts to be displayed when mismatch happen on utterance level

qry-accountenquiry_ACCT_SELECT_WITH_SHOW_MORE_TEMPLATE_ID=BalInqAcctSelection

Hooks or Fulfilments:-

Kindly refer Hooks or Fulfilments for name(Balance_Inquiry) use case on admin as guided on here.

Customization of Image Properties:-

To customise images. Kindly refere here

Activate Card


Overview

Attribute Description
Use case name Activate card
Type Service request
Intent txn-cardsettings
Banking products supported Cards
Channels supported Web, Mobile, FB messenger, Alexa
Login Yes
2FA Yes
Integrated API availability NA
Stub data availability Yes

Features

Summary

  1. User can request for activation of a new or blocked card

  2. If the card is in inactive or blocked status it will be activated.

Detailed

  1. User can request for activating a debit or credit card in their possession.

  2. Typically users will be required to activate their new or re-issued cards before they can use.

  3. Some financial institutions also allow to unblock/activate a card that was blocked temporarily

Flow CX

List of Cards -> Confirm Activation of Cards -> Enter OTP -> Status of Card Activation.

Sample CX for default flow

Default Flow - List of Cards -> Confirm Activation of Cards -> Enter OTP -> Status of Card Activation.

Note: This can be flowchart / GIF or screenshot to represent OOTB flow

line

Facebook Flow -

activate_card_login activate_card_login_page activate_card_list activate_card_confirm_otp activate_card_status

Sample utterances that work as per the flow

Activate_Card_Flow

Configuration

Generic Configuration

Customisation

Integration Customisation

Pre-Requirement:-To fetch the API of credit and debit cards list, refer to the Balance Inquiry.

API for Activate Card Status

Request

Schema:

{
"accessToken": "string",
"address": "string",
"cardDetails": {
    "accountId": "string",
    "accountName": "string",
    "activationDate": "string",
    "amountDue": 0,
    "availableCash": 0,
    "availableCreditLimit": 0,
    "bankName": "string",
    "branchAddress": "string",
    "branchId": "string",
    "branchName": "string",
    "cardHolderName": "string",
    "cardIssuer": "VISA",
    "cardName": "string",
    "cardNumber": "string",
    "cardStatus": "ISSUED",
    "cardType": "CREDIT_CARD",
    "cashLimit": "string",
    "closingBalance": 0,
    "creditLimit": 0,
    "currencyCode": "string",
    "displayCardNumber": "string",
    "domesticATMLimit": "string",
    "domesticPOSLimit": "string",
    "expiryDate": "string",
    "internationalATMLimit": "string",
    "internationalEnabled": true,
    "internationalPOSLimit": "string",
    "isInternationalEnabled": true,
    "lastStatementBalance": 0,
    "lastStatementDate": "string",
    "maxCashLimit": "string",
    "maxCreditLimit": "string",
    "maxDomesticATMLimit": "string",
    "maxDomesticPOSLimit": "string",
    "maxInternationalATMLimit": "string",
    "maxInternationalPOSLimit": "string",
    "minimumPayment": 0,
    "openingBalance": 0,
    "outStandingAmount": 0,
    "oversearCardActivated": true,
    "overseasCardActivated": true,
    "paymentDueDate": "string",
    "permanentCreditLimit": 0,
    "productCode": "string",
    "productType": "string",
    "temporaryCreditLimit": 0
    },
"customerId": "string",
"customerName": "string",
"emailId": "string",
"mobileNumber": "string"
}

Response:

    Status : 200
    Meaning: OK
    Description: OK
Schema:
{
    "result": {
        "message": "string",
        "messageCode": "string",
        "status": 0
    },
    "status": "SUCCESS",
    "referenceId": "string"
}

Service API to integrate with Bank API

Package Class Name Method Name Details
services CardsService getActivationCardResponseEntity() You can call your API inside this method.
domain-->request ActivationCardRequest Request Class
domain-->response ActivationCardResponse Response Class
mapper-->response ActivationCardResponseMapper Map API response to this mapper class
model Card Fields, Getter/Setter methods

Following are the types to customize the integration for the Activate Card

Writing custom service and invoking in the camel route:-

Class Diagram for Card Service Request and Card Service Response

Request Object:- Figure 1.1 describes the class diagram for CardServiceRequest Object of RB with fields and dependencies.

Response Object:- Figure 1.2 describes the class diagram for CardServiceResponse Object of RB With fields and dependencies.

Card_Service_Request  Figure 1.1

                                            Card_Service_Response Figure 1.2 

Using Workflow webhook

 - You can directly call your API using a workflow webhook and customize your response.

Response Customisation

Messages

Hooks or Fulfilments

Customization of Image Properties:-

Images of Cards for Cards List. Kindly refere here

Assets and Liabilities Inquiry


Coming Soon...

ATM Locator


Coming Soon...

Balance Inquiry


Overview

Use case name Balance Inquiry
Type Inquiry
Intent qry-balanceenquiry
Entities
  • product type - accounts, deposits, loans, cards
  • product name - Platinum, EasySaver etc
  • account ID / card number
  • available balance
  • currency
Banking products supported Savings, Checking (current), Loans, Deposits, Cards
Channels supported Web, Mobile, FB messenger, Alexa
Login Yes
2FA NA
Integrated API availability Yes (Finastra & Corelation)
Integrations done NA
Stub data availability Yes

Features

Summary

  1. The user will be able to check the balance held in various products of the bank.

  2. It will be possible to check the summary based on product type and also drill down to individual account details.

  3. Alternatively, users can directly specify the account number to check balance details for a specific account relationship.

Detailed

  1. User can view the balance details across their relationships with the financial institution.

  2. User can mention a specific account or get the details by specifying a category (like loans, credit cards).

  3. User can also view balances that they 'owe' (Liabilities) vs that they 'own' (Assets) i.e. their portfolio view.

    1. User can select a specific account, loan, card etc after expanding the category or portfolio view.
    2. The consolidated balance based on above grouping will be displayed.
  4. User can retrieve balance details for an account by specifying partial details that identify one or more accounts

    1. ...account ending with '2678'
    2. ...certificate of deposits
    3. … 'Platinum' credit card or 'Premier' checking account
  5. User can request for different types of balances applicable for that relationship

    1. ...outstanding amount on my credit card
    2. …minimum amount due on my credit card
    3. ...available balance on my savings account

Flow CX

Note: This can be flowchart / GIF or screenshot to represent OOTB flow

line

Facebook Flow -

show_balance_login show_balance_login_page show_balance_login show_balance_login_page show_balance_login

Flow Templates

Template 1: (Default)

Show as Categorised → Select a Category → List of accounts → Select an Account → View Details → View Transactions

Template 2:

Show as Categorised → Select a Category → List of accounts → View Transactions

Template 3:

Show list of accounts → Select an account → Show details → View Transactions

Template 4:

Show list of accounts → Select an account → View Transactions

Configurations

Generic Configurations

Following are the generic default configurations available with setup and are applicable for all channels.

  1. This property defines with all products that are supported in Balance Inquiry use-case

qry-balanceenquiry_ACCOUNT_CATEGORIES

  1. Supported account Categories are : casa, creditcard, debitcard, loan, deposit, overdraft, forexcard

  2. This property defines with the account types supported for Accounts

qry-balanceenquiry_SUPPORTED_ACCOUNT_TYPES=checking

  1. Supported account types are : savings,checking

  2. The order of listing accounts in Balance Inquiry.

ACCOUNT_CATEGORY_SORT_ORDER=casa, creditcard

  1. The values are to be in sync with whatever configured for qry-balanceenquiry_ACCOUNT_CATEGORIES.

  2. Sort and list the accounts based on their balances.

SORT_ACCOUNTS_BY_HIGH_BALANCE=yes

  1. Set it to 'no' if need to show the accounts as received from API.

  2. Following are the list of product attributes that are supported as a default set of implementation.

(statementbalance,minimumpayment,minpayment,outstandingbalance,currentbalance,latestbalance,duedate,expirydate,rewardpoints,rewardpoint,totalbalance,closingbalance,ledgerbalance,floatbalance,holdbalance,dueamount,accountopened,loyaltypoint,availablelimit,totallimit,minimumdue,mindue,lastpaymentamount,lastpaymentdate,lastmonthbill,lastmonthdue,basebranch,branch,branchname,branchaddress,nominee,tenure,interestrate,installmentamount,enddate,emiamount,accountopening,outstanding,rateofinterest,maturitydate,maturityamount,maturityinstruction,startdate,accumulatedinterest,renewaldate,cumulativeamount,currentmonthbill,presentamount,balance,lastbill,totaldue,minimumamount,minimumamountdue,nextpaymentamount,primaryowner,jointowner,nextpaymentdate,openingdate,emidate,nextemidate)

  1. Based on the requirement all the attributes can be enabled by appending to the following property.

qry-balanceenquiry_SUPPORTED_MODIFIERS=statementbalance,minimumpayment

  1. Following property is to tell bot wrt attribute responses, whether need to be as a Template or Text response.

qry-balanceenquiry_RESPONSE_TYPE=TEMPLATE

  1. Supported values : TEMPLATE or TEXT

  2. Will the accountSummary API list all accounts and its balances or need to do a separate call to fetch balance, if separate API need to be invoked then the following need to be set to true.

IS_BALANCE_SEPARATE_API_CALL=false

  1. Supported boolean values are 'true' or 'false'

  2. Configured supported products are casa & creditcard, Credit Card api is giving response with card details & balances where as Current Account & Savings Account API is not with balance details and need to invoke separate API to fetch balance, in which case we will configure this property based on product.

INVOKE_CASA_BALANCE_API=true

  1. From the received balance API response, all the attributes that need to be mapped back for display need to be configured in this property.

ACCOUNT_BALANCE_PROPS_FROM_API=balance,availableBalance

  1. If balance API is invoked for each product, then the attributes can be configured for each of the products as LOAN_BALANCE_PROPS_FROM_API=outstandingbalance,installmentAmount

  2. And same way for other products: CREDIT_CARD,DEBIT_CARD,DEPOSIT

  3. Do we have multiple api for individual productType or one api to fetch all poroductType summaries

IS_MULTIPLE_API_CALL_FOR_GET_ACCOUNTS=false

  1. If we need to call multiple APIs to fetch all the supported products, then accordingly this need to be set to True.

IS_ACCOUNT_DETAILS_SEPARATE_API_CALL= false

  1. If details API is set to true and to invoke details API based on product, we need the set the following property to true.

INVOKE_ACCOUNT_DETAILS_API=true

  1. other supported products are,LOAN,CREDIT_CARD,DEBIT_CARD,DEPOSIT. Replacing the product name with ACCOUNT, will be fetching details accordingly.

  2. For voice channels if we don't want user to select an acc to know its balance, then by by setting this value it reads the balance of an account that is set as preferred/default account.

qry-balanceenquiry_aa_USE_DEFAULT_ACCOUNT=yes

qry-balanceenquiry_gh_USE_DEFAULT_ACCOUNT=yes

  1. Details that need to be mapped back to Product can be specified here based on Product.

ACCOUNT_DETAILS_PROPS_FROM_API=ifscCode,bankName

  1. other supported products are,LOAN,CREDIT_CARD,DEBIT_CARD,DEPOSIT. Replacing the product name with ACCOUNT, will be fetching details accordingly.

  2. Invoke balance api on account mismatch

  3. when user uttered like show my balance of account number 1234 (where 1234 account is not exists)

  4. Here need to show accounts without balance after selection needs to hit an api and show particular account balance after balance api called) by default it is true

INVOKE_BALANCE_API_ON_MISMATCH=true


Template Configurations

Template 1

Show as Categorised → Select a Category → List of accounts → Select an Account → View Details → View Transactions

Config ID Configuration Details
C1 show balance based 1) Category 2) Account Category to get categorised as Accounts /Cards/Loans/Deposits etc, use this config to enable this DEFAULT_BALANCE_VIEW=balance_by_category * Account - to display individual account details
C2 Is cumulative balance is returned from bank API? Yes(default), No
C3 qry-balanceenquiry_INVOKE_ACCOUNT_DETAILS_API=true This value is set to 'true' to fetch details of the selected account.

Template 2

Show as Categorised → Select a Category → List of accounts → View Transactions

Config ID Configuration Details
C1 show balance based 1) Category 2) Account 1) Category -to get categorised as Accounts /Cards/Loans/Deposits etc, use this config to enable this DEFAULT_BALANCE_VIEW=balance_by_category 2) Account - to display individual account details
C2 Is cumulative balance is returned from bank API? Yes(default),No
C3 Do you want to display account with high balance as the order within each category? Yes(default),No
C4 qry-balanceenquiry_ALL_ACCOUNTS_TEMPLATE_ID=AllAccountsListForTrxn qry-balanceenquiry_ACCOUNTS_SHOW_MORE_REQ_TEMPLATE_ID=AllAccountsListForTrxn qry-balanceenquiry_SINGLE_ACCOUNT_TEMPLATE_ID=BalanceViewSingleAccountForTrxn qry-balanceenquiry_ACCT_SELECT_TEMPLATE_ID=BalInqAcctSelectionForTrxn qry-balanceenquiry_ACCT_SELECT_WITH_SHOW_MORE_TEMPLATE_ID=BalInqAcctSelectionForTrxn qry-balanceenquiry_ACCOUNTS_WITH_SHOW_MORE_TEMPLATE_ID=AccountsListWithShowMoreForTrxn Update these configurations either in domainrulemstr or rb property file

Template 3

Show list of accounts → Select an account → View details → View Transactions

Config ID Configuration Details
C1 show balance based 1) Account Account - to display individual account details DEFAULT_BALANCE_VIEW=drilldown To get list of accounts in first step itself
C2 Is cumulative balance is returned from bank API? Yes(default), No

Template 4

Show list of accounts → Select an account → View Transactions

|Config ID|Configuration| Details| |---|---|---| |C1|show balance based 1) Category 2) Account| 1) Category -to get categorised as Accounts /Cards/Loans/Deposits etc, use this config to enable this DEFAULT_BALANCE_VIEW=balance_by_category 2) Account - to display individual account details | | C2| Is cumulative balance is returned from bank API? | Yes(default),No| |C3|Do you want to display account with high balance as the order within each category?|Yes(default),No| |C4|qry-balanceenquiry_ALL_ACCOUNTS_TEMPLATE_ID=AllAccountsListForTrxn qry-balanceenquiry_ACCOUNTS_SHOW_MORE_REQ_TEMPLATE_ID=AllAccountsListForTrxn qry-balanceenquiry_SINGLE_ACCOUNT_TEMPLATE_ID=BalanceViewSingleAccountForTrxn qry-balanceenquiry_ACCT_SELECT_TEMPLATE_ID=BalInqAcctSelectionForTrxn qry-balanceenquiry_ACCT_SELECT_WITH_SHOW_MORE_TEMPLATE_ID=BalInqAcctSelectionForTrxn qry-balanceenquiry_ACCOUNTS_WITH_SHOW_MORE_TEMPLATE_ID=AccountsListWithShowMoreForTrxn |Update these configurations either in domainrulemstr or rb property file

Customisation

Integration Customisation

  1. Checkout the RB Stub Integration Services code from the Repo for quick and easy integration. click here Integrate with the Bank Login API using the given code, deploy and starts working.

Request / Response

Sample Request-Response in the case of one API returning accounts with balances.

Along with accounts/cards summary call itself

Request:
Request URL : http://localhost:8080/banking-integration/v1/{customerId}/accounts/{productType}
    customerId - String
    productType - String (casa, deposit, creditcard, debitcard, loan)
Response :
    Status : 200
    Meaning: OK
    Description: OK
Schema:
{  
    "accounts":[  
                    {  
                    "accountId":"string",  
                    "accountName":"string",  
                    "accountNumber":"string",  
                    "accountType":"SAVINGS",  
                    "balance":{  
                    "amount":0,  
                    "availableBalance":0,  
                    "currencyCode":"string",  
                    "currentBalance":0,  
                    "monthlyAverageBalance":0  
                    },  
                    "bankName":"string",  
                    "branchAddress":"string",  
                    "branchId":"string",  
                    "branchName":"string",  
                    "displayAccountNumber":"string",  
                    "ifscCode":"string",  
                    "lastStatementBalance":0,  
                    "lastStatementDate":"string",  
                    "leavesCount":"string",  
                    "openingDate":"string",  
                    "product":"Fixed Deposit",  
                    "productCode":"string",  
                    "referenceId":"string",  
                    "status":"NEW_ACCOUNT",  
                    "transactionStatus":"SUCCESS"  
                    }  
            ],  
    "result":{  
                "message":"string",  
                "messageCode":"string",  
                "status":0  
             }  
}

Separate call for Balance

If need to do a separate API call to fetch balance for account list received in above call.

Request:
Request URL: http://one-api.active.ai/banking-integration/v1/{customerId}/accounts/{productType}/{accountId}/balance
    customerId - String
    productType - String (casa, deposit, creditcard, debitcard, loan)
Response:
    Status : 200
    Meaning: OK
    Description: OK
Schema:
{  
    "accountSelected":{  
        "accountId":"string",  
        "accountName":"string",  
        "accountNumber":"string",  
        "accountType":"SAVINGS",  
        "balance":{  
            "amount":0,  
            "availableBalance":0,  
            "currencyCode":"string",  
            "currentBalance":0,  
            "monthlyAverageBalance":0  
        },  
        "bankName":"string",  
        "branchAddress":"string",  
        "branchId":"string",  
        "branchName":"string",  
        "displayAccountNumber":"string",  
        "ifscCode":"string",  
        "lastStatementBalance":0,  
        "lastStatementDate":"string",  
        "leavesCount":"string",  
        "openingDate":"string",  
        "product":"Fixed Deposit",  
        "productCode":"string",  
        "referenceId":"string",  
        "status":"NEW_ACCOUNT",  
        "transactionStatus":"SUCCESS"  
    },  
    "result":{  
        "message":"string",  
        "messageCode":"string",  
        "status":0  
    }  
}

Separate API to fetch Details

Request:
Request URL: http://one-api.active.ai/banking-integration/v1/{customerId}/accounts/{productType}/{accountId}
    customerId - String
    accountId - String
    productType - String (casa, deposit, creditcard, debitcard, loan)
Response:
    Status : 200
    Meaning: OK
    Description: OK
Schema:
{  
    "accountDetails":{  
        "accountId":"string",  
        "accountName":"string",  
        "accountNumber":"string",  
        "accountType":"SAVINGS",  
        "balance":{  
            "amount":0,  
            "availableBalance":0,  
            "currencyCode":"string",  
            "currentBalance":0,  
            "monthlyAverageBalance":0  
        },  
        "bankName":"string",  
        "branchAddress":"string",  
        "branchId":"string",  
        "branchName":"string",  
        "displayAccountNumber":"string",  
        "ifscCode":"string",  
        "lastStatementBalance":0,  
        "lastStatementDate":"string",  
        "leavesCount":"string",  
        "openingDate":"string",  
        "product":"Fixed Deposit",  
        "productCode":"string",  
        "referenceId":"string",  
        "status":"NEW_ACCOUNT",  
        "transactionStatus":"SUCCESS"  
    },  
    "result":{  
        "message":"string",  
        "messageCode":"string",  
        "status":0  
    }  
}
  1. Following are the Balance Request-Response objects using which one can integrate with product with own integration coding. By pointing the following RB property value to integration camel route id for supported productTypes.

Route to fetch Current Account & Savings Account accounts ACCOUNT_ROUTE_URI=direct:demobank.stub.getAccounts (Default value for Current Account & Savings Account)

Route to fetch Credit cards CREDIT_CARD_ROUTE_URI=direct:demobank.stub.getCreditCards

Route to fetch Debit cards DEBIT_CARD_ROUTE_URI=direct:demobank.stub.getDebitCards

Route to fetch Deposit accounts DEPOSIT_ROUTE_URI=direct:demobank.stub.getDeposits

Route to fetch Loan accounts LOAN_ROUTE_URI=direct:demobank.stub.getLoans

Route to fetch Forex cards FOREX_CARD_ROUTE_URI=direct:demobank.stub.getForexCards

Class Diagrams

For class Diagrams click here

Response Customisation

The properties needs to be formatted properly so that on response visible on templates should be in proper like 100000 -> 1,10,000

ACCOUNT_AMOUNT_PROPS_TO_BE_FORMATTED=balance,availableBalance

You can customise flows as you required on given above three templates

For Template 2 and Template 3

When all accounts to be shown as list and list size<4. Default is list template, to change to carousel template, click here for template editor qry-balanceenquiry_ALL_ACCOUNTS_TEMPLATE_ID=AllAccountsList

When all accounts in the list should be displayed, after clicking show more button qry-balanceenquiry_ACCOUNTS_SHOW_MORE_REQ_TEMPLATE_ID=AllAccountsList

When list contains only one account. Default is card template qry-balanceenquiry_SINGLE_ACCOUNT_TEMPLATE_ID=BalanceViewSingleAccount

To enable/disable show more qry-balanceenquiry_IS_ACCOUNT_SHOW_MORE_SUPPORTED=yes

Shows list of accounts in case of account number mismatch scenario qry-balanceenquiry_ACCT_SELECT_TEMPLATE_ID=BalInqAcctSelection

Shows list of accounts in case of account number mismatch scenario, list size>4 and show more is enabled. qry-balanceenquiry_ACCT_SELECT_WITH_SHOW_MORE_TEMPLATE_ID=BalInqAcctSelection

When all accounts to be shown as a list with account details and list size>4 and show more is enabled. Default is list template qry-balanceenquiry_ACCOUNTS_WITH_SHOW_MORE_TEMPLATE_ID=AccountsListWithShowMoreWithGetDetails

For Template 1 and Template 4

When all accounts to be shown as a list, list size<4. Default is list template qry-balanceenquiry_ALL_ACCOUNTS_TEMPLATE_ID=AllAccountsListForTrxn

When all accounts to be shown as list after clicking show more button qry-balanceenquiry_ACCOUNTS_SHOW_MORE_REQ_TEMPLATE_ID=AllAccountsListForTrxn

When list contains only one account. Default is card template qry-balanceenquiry_SINGLE_ACCOUNT_TEMPLATE_ID=BalanceViewSingleAccountForTrxn

Shows list of accounts in case of account number mismatch scenario qry-balanceenquiry_ACCT_SELECT_TEMPLATE_ID=BalInqAcctSelectionForTrxn

Shows list of accounts in case of account number mismatch scenario when show more is clicked qry-balanceenquiry_ACCT_SELECT_WITH_SHOW_MORE_TEMPLATE_ID=BalInqAcctSelectionForTrxn

When all accounts to be shown as a list, list size>4 and show more is enabled. Default is list template qry-balanceenquiry_ACCOUNTS_WITH_SHOW_MORE_TEMPLATE_ID=AccountsListWithShowMoreForTrxn

Product Images:

Images can be displayed differently for each product in template.

We configure images to be shown on templates as described below

Example: - qry-balanceenquiry_VISA_IMAGE_URL={S3_DOMAIN_NAME}/visa_card_2x.png

Account Specific Images:

SAVINGS_IMAGE_URL={S3_DOMAIN_NAME}/savings_account_2x.png CHECKING_IMAGE_URL={S3_DOMAIN_NAME}/current_account_2x.png DEPOSIT_IMAGE_URL={S3_DOMAIN_NAME}/deposit_account_2x.png LOAN_IMAGE_URL={S3_DOMAIN_NAME}/loan_account_2x.png SAVINGS_SINGLE_IMAGE_URL={S3_DOMAIN_NAME}/savings_account_2x.png CHECKING_SINGLE_IMAGE_URL={S3_DOMAIN_NAME}/current_account_2x.png DEPOSIT_SINGLE_IMAGE_URL={S3_DOMAIN_NAME}/deposit_account_2x.png LOAN_SINGLE_IMAGE_URL={S3_DOMAIN_NAME}/loan_account_2x.png

Card Specific Images:

qry-balanceenquiry_MASTER_IMAGE_URL={S3_DOMAIN_NAME}/master_card_2x.png qry-balanceenquiry_AMEX_IMAGE_URL={S3_DOMAIN_NAME}/default_card_2x.png qry-balanceenquiry_DINERS_IMAGE_URL={S3_DOMAIN_NAME}/default_card_2x.png qry-balanceenquiry_MASTER_SINGLE_IMAGE_URL={S3_DOMAIN_NAME}/master_card_2x.png qry-balanceenquiry_AMEX_SINGLE_IMAGE_URL={S3_DOMAIN_NAME}/default_card_2x.png qry-balanceenquiry_DINERS_SINGLE_IMAGE_URL={S3_DOMAIN_NAME}/default_card_2x.png

We can customise response on template using template editor as shown here

TemplateEditor

Messages

Kindly refer messages for this use case on admin by selecting respective category ( like Balance Inquiry,Balance Common,Common) as shown here

Templates

Kindly refer Templates for this use case on admin by selecting a category (like Balance Inquiry,Balance Common,Common) as shown here

Hooks or Fulfilment's:

Kindly refer Hooks or Fulfilment's for name(Balance_Inquiry) use case on admin as guided on here.

Bill Payment


Overview

Use case name Bill payment
Type Transaction
Intent txn-moneymovement
Entities
  • Biller category
  • Biller name
  • Biller type
  • Bill amount
  • Due date
Banking products supported Operative accounts, credit card
Channels supported Web, Mobile, FB messenger, Alexa
Login Yes
2FA Yes
API availability Yes
Integrations done NA
Stub data availability Yes

Features

Summary

  1. Users can make bill payments for various types of bills including credit cards.

  2. Bills of registered billers and credit cards can be paid.

Detailed

  1. Users can express interest in paying their bills.

  2. System will check for previous records and suggest preferred account from which bill needs to be paid.

  3. Users can choose any other account of their choice, if not going with the suggested account.

  4. Once account selection is done, system will provide options to choose between credit card and other registered billers

We are supporting pay bills for different Billers

  1. Registered

    1. Other Billers(Default) Pay bills for registered ones like Electricity bills, mobile bills, gas bills
    2. Credit Card Payment(Default)
  2. Non-Registered Billers

    1. Other Billers(need to configure)
    2. Credit Card Payment(need to configure)

Flow CX

Note: This can be flowchart / GIF or screenshot to represent OOTB flow

Facebook Flow -

pay_bills_login pay_bills_login pay_bills_account_list pay_bills_biller_type pay_bills_biller_list pay_bills_pay_amount pay_bills_confirm pay_bills_otp pay_bills_status

Sample utterances that work as per the flow

Flow Chart Loading...

Configurations

Business Rules

Specifies the maximum bill payments done per day per user
Daily Transaction Count

Specifies the cumulative maximum funds transferred via bill payments per day per user
Daily Transaction Limit (Amount)

Specifies the maximum amount for a bill payment transaction
Maximum Transaction Limit (Amount)

Specifies the interval between each bill payment transaction per session
Minimum Interval between Transactions (mins)

Specifies the minimum amount for a bill payment transaction
Minimum Transaction Limit (Amount)

Configuration

Specifies whether you want to pay bill for registered billers or adhoc billers or both
Biller Type

Consumer Number

Specifies the validation regex for valid consumer reference numbers
Consumer Number Validation Pattern

Specifies the maximum length of consumer number
Maximum Consumer Reference Number Length

Specifies the minimum length of consumer reference number
Minimum Consumer Reference Number Length

Generic Configuration

You can provide supported account Categories here which were shown to be as debitable accounts(casa, creditcard, debitcard)
billpayment_ACCOUNT_CATEGORIES=casa
Remarks need for bill payment?
TRANSFER_IS_REMARKS_REQUIRED_BILL_PAYMENT=no
To support one time payment for the billers
BILL_PAYMENT_IS_ADHOC_SUPPORTED=no
To support the enabling autopay for billers
IS_AUTO_PAY_BILLER_ENABLED=false
Is amount api is available to fetch due amount for the biller
IS_ADHOC_BILLPAYMENT_BILLDESK_AMOUNT_API_ENABLED=false
IS_BILLER_PRESENCE_ENABLED=false
Time offset for bill due date reminder
BILL_DUEDATE_REMINDER_OFFSET=4
Supported payees for bill payment
billpayment_SUPPORTED_PAYEE_CATEGORIES=CREDIT_CARD,BILL_PAYMENT
sort the biller list based on biller name by default
IS_BILLER_LIST_SORT_ON_BILLER_NAME=yes
*Kindly refer basic generic configurations here

Integration configs

For one time credit card payment you can fetch amount in this route
ADHOC_CC_FETCH_BILL_AMOUNT_URI=direct:rb.demobank.stub.creditcard.fetch.billamount
Final call for bill payment will be done here
BILL_PAYMENT_CONFIRM_URI=direct:rb.demobank.stub.bill.payment.confirm.api
Route where need to integrate for enabling autopay for the specific biller final api call
AUTO_PAY_BILLER_URI=direct:rb.demobank.stub.billers
To fetch registered biller from api
GET-REGISTERED-BILLERS=direct:rb.demobank.stub.registered.billers
Fetch one time payment biller category from api
GET_BILLER_CATEGORIES_URI=direct:rb.demobank.stub.get.biller.categories.from.file
Fetch one time payment billers from api
GET_BILLERS_URI=direct:rb.demobank.stub.get.billers.from.file
To fetch amount to be paid for the biller
GET_BILL_AMOUNT_URI=direct:rb.demobank.stub.get.bill.amount

Remarks

Remarks need to be ask for bill payment
IS_BP_REMARKS_REQUIRED=no
Need to ask to skip remarks on quick reply
BP_QUICK_REPLY_REQUIRED=yes

Transaction Status(Final Api call)

If the confirm API is two steps, like first preprocess and then call confirm by default RB set this as true
IS_BILL_PAYMENT_TWO_STEPS=true

Customization

Integration customization

Integration can be done in so many ways 1. Microservices provided by RB(Banking-Integration) * Here only default flows can be integrated * Explanation for basic details were given here 2. Using camel routes of RB itself * Here need to understand Request and response of each RB domain objects

Using camel routes of RB itself

As described in the above configurations need to create specific routes from the RB exposed routes, will suggest don't change any base routes without any notice to the product team

Fetches bill payment status BILL_PAYMENT_CONFIRM_URI=direct:rb.demobank.stub.bill.payment.confirm.api

Fetches registered billers for bill payment GET-REGISTERED-BILLERS=direct:rb.demobank.stub.registered.billers

Fetches bill payment due amount GET_BILL_AMOUNT_URI=direct:rb.demobank.stub.get.bill.amount

Bill Payment Status API

Request Object:- Figure 1.1 describes the class diagram for BillPaymentRequest Object of RB
Where that contains getters and setters
Response Object:- Figure 1.2 describes class diagram for BillPaymentResponse Object of RB With getters and setters

BillPaymentRequest Fig 1.1 BillPaymentRequest

BillPaymentResponse Fig 1.2 BillPaymentResponse

Due Amount API

Request Object:- Figure 1.3 describes class diagram for BillPaymentRequest Object of RB
Where that contains getters and setters
Response Object:- Figure 1.4 describes class diagram for Payee Object of RB With getters and setters

PayeeResponse Fig 1.3 PayeeResponse

Payee Fig 1.4. Payee

Response Customisation

Messages

Kindly refer messages for this use case on admin by selecting respective category (Like Bill Payment,Transaction Common) as shown here

Templates

Template ID's Amount confirmation Template BP_AMOUNT_CONFIRM_TEMPLATE_ID=BillPaymentAmountConfirm
Customer preference confirmation
BILL_PAYMENT_CUST_PREF_CONFIRM_TEMPLATE_ID=BillPaymentPrefConfirm
Biller Category list
txn-moneymovement_BILLPAYMENT_CATEGORY_TEMPLATE_ID=BillerCategoryList
Biller Category list with show more
txn-moneymovement_BILLPAYMENT_CATEGORY_SHOWMORE_TEMPLATE_ID=BillerCategoryShowMoreList
Billers list
txn-moneymovement_BILLPAYMENT_BILLER_TEMPLATE_ID=BilllerList
Billers list with show more
txn-moneymovement_BILLPAYMENT_BILLER_SHOWMORE_TEMPLATE_ID=BillerShowMoreList
Bill payment decision whether it is Registered biller, card payment, etc,.
txn-moneymovement_BP_DECISION_TEMPLATE_ID=BillPaymentDecision
Web view to identify billers information for one time payment
BILLER_USER_INPUTS_VIEW_TEMPLATE_ID=BillerUserInputsView
BILLER_USER_INPUTS_VIEW_URL_TEMPLATE_ID=BillerUserInputsViewUrl
Single account message template
billpayment_SingleAccountMsg=BillPaymentSingleAccountMsg
txn-moneymovement_BILLER_PRESENCE_TEMPLATE_ID=BillerPresence
Biller list to enabl;e autopay
txn-moneymovement_AUTOPAYBILLER_LIST=AutoPayBilllerList
txn-moneymovement_AUTO_PAY_BILLER_TEMPLATE_NAME=AddAutoPayBiller
Account selection confirmation on context
billpayment_AcctConfirm=PayBillConfirmAccount
All Accounts shown
billpayment_ALL_ACCOUNTS_TEMPLATE_ID=BillPaymentAccounts
Single account shown
billpayment_SINGLE_ACCOUNT_TEMPLATE_ID=BillPaymentAccounts
All Accounts after mismatch
billpayment_ACCT_SELECT_TEMPLATE_ID=BillPaymentAccountsMismatch
All account shown with show more after mismatch
billpayment_ACCT_SELECT_WITH_SHOW_MORE_TEMPLATE_ID=BillPaymentAccountsWithShowMore
Success template
BP_SUCCESS_HTML_TEMPLATE_NAME=BillPaymentSuccessHtml
All account shown with show more billpayment_ACCOUNTS_WITH_SHOW_MORE_TEMPLATE_ID=BillPaymentAccountsWithShowMore
All account shown with after clicking show more
billpayment_ACCOUNTS_SHOW_MORE_REQ_TEMPLATE_ID=BillPaymentAccountsWithShowMore

Hooks or Fulfilments

Kindly refer Hooks or Fulfilments for name(bill_payment) use case on admin as guided on here.

Customization of Image Properties:-

To customise images. Kindly refere here

Block Card


Overview

Use case name Block card
Type Service request
Intent txn-productclosure
Entities
  • Card type - Debit , Credit
  • Carrier - VISA, MasterCard ...
  • Card number - Numeric card number
  • Block type -Permanent / Temporary
Banking products supported Cards
Channels supported Web, Mobile, FB messenger, Alexa
Login Yes
2FA Yes
API availability Yes
Integrations done NA
Stub data availability Yes

Features 

Summary

  1. The user will be able to block a debit or credit card

  2. They can specify the card number that has to be blocked or choose from a list

  3. Block type can be temporary or permanent subject to API availability

Detailed 

  1. User whose debit or credit card is lost, stolen or damaged may ask for their card to be blocked.

  2. User can simply say ‘block card’ OR specify a card that needs to be blocked.

    1. In the first case, the system would check if there are more than one card available for the customer. If ‘yes’, it would present card selection options, else proceed with the only card
    2. If user has specified the card number for blocking, system would proceed to block card flow
  3. Next user will be prompted to input card block type

    1. Temporary, OR
    2. Permanent
  4. If the card is not in blocked status , system will proceed to block the card after user confirmation

  5. It will be possible to configure OTP or any 2FA at this stage

Flow CX

Default Flow - List of Cards ---> Select Block Type ---> Card Blocking Confirmation ---> OTP ---> Card Blocked Status

Note: This can be flowchart / GIF or screenshot to represent OOTB flow

line

Facebook Flow -

block_card_login block_card_login_page block_card_list block_card_type block_card_confirm block_card_otp block_card_status

Sample utterances that works as per the flow

Block_Card_Flow

Configurations

Generic Configurations

Different product categories supported in Block Card, as configured the supported categories are Credit Card, Debit Card & Forex Card. 

E.g. If ‘Prepaid Card’ need to be supported, the same need to appended as ‘prepaidcard’
blockcard_ACCOUNT_CATEGORIES=creditcard,debitcard,forexcard

List all cards based on the supported card status, default value is ‘Active’ to list only Active cards. Other supported Status are ‘’
txn-productclosure_blockcard_SUPPORTED_STATUS=ACTIVE
No. of cards to show in the list. Default carousel view is supported, can be changed to list by updated the template. Template details are detailed below. 
blockcard_NO_OF_ITEMS_TO_SHOW_IN_LIST=10

Customisation

Integration Customisation

  1. Checkout the code from the following Repo for quick and easy integration. click here

Integrate with the Bank Login API using the given code, deploy and starts working.
API to fetch list of credit or debit cards
Refer to balance Inquiry for integrating and fetching Cards list.

API for block card Status

Request:

Request URL:  http://one-api.active.ai/banking-integration/v1/{customerId}/cards/{cardNumber}/block/confirm

customerId - String
cardNumber -String

Request Schema:
{

  "accessToken": "string",

  "address": "string",

  "blockType": "PERMANENT",

  "cardDetails": {

    "accountId": "string",

    "accountName": "string",

    "activationDate": "string",

    "amountDue": 0,

    "availableCash": 0,

    "availableCreditLimit": 0,

    "bankName": "string",

    "branchAddress": "string",

    "branchId": "string",

    "branchName": "string",

    "cardHolderName": "string",

    "cardIssuer": "VISA",

    "cardName": "string",

    "cardNumber": "string",

    "cardStatus": "ISSUED",

    "cardType": "CREDIT_CARD",

    "cashLimit": "string",

    "closingBalance": 0,

    "creditLimit": 0,

    "currencyCode": "string",

    "displayCardNumber": "string",

    "domesticATMLimit": "string",

    "domesticPOSLimit": "string",

    "expiryDate": "string",

    "internationalATMLimit": "string",

    "internationalEnabled": true,

    "internationalPOSLimit": "string",

    "isInternationalEnabled": true,

    "lastStatementBalance": 0,

    "lastStatementDate": "string",

    "maxCashLimit": "string",

    "maxCreditLimit": "string",

    "maxDomesticATMLimit": "string",

    "maxDomesticPOSLimit": "string",

    "maxInternationalATMLimit": "string",

    "maxInternationalPOSLimit": "string",

    "minimumPayment": 0,

    "openingBalance": 0,

    "outStandingAmount": 0,

    "oversearCardActivated": true,

    "overseasCardActivated": true,

    "paymentDueDate": "string",

    "permanentCreditLimit": 0,

    "productCode": "string",

    "productType": "string",

    "temporaryCreditLimit": 0

  },

  "customerId": "string",

  "customerName": "string",

  "emailId": "string",

  "mobileNumber": "string"

}

Success Response: ```` JSON Status : 200

Meaning: OK

Description: OK
````

Schema: JSON { "referenceId": "string", "result": { "message": "string", "messageCode": "string", "status": 0}, "status": "SUCCESS" }

Using custom integration service-
  You can call the bank API by changing the URL in service of banking integration project.

Classes- |Package |Class Name |Method Name|Details | |---|---|---|---|---| |service|CardsService|getBlockCardResponseEntity()|You can call your API inside this method.| |domain-->request|BlockCardRequest||Request Class| |domain-->response|BlockCardResponse||Response Class| |mapper-->response|BlockCardResponseMapper||Map API response to this mapper class| |model|Card||Fields, Getter/Setter methods| |||||

  1. Developing new code to Integrate with new code.

    At the end of the Block Card flow, the request object is sent to the configured API using which bank API can be integrated with. And the response should be mapped with block card response object.
  You can directly call your API from integration camel by following below steps-
        A. Check for property BLOCK_CARD_ROUTE_URI  value.
        B. Go to that route id.
        C. Check for the API url and change it by your API url and map the response accordingly.

Refer here for request and response images.

  1. Using Workflow webhook
        You can directly call your API using a workflow webhook and customize your response.

Response Customisation

Messages

Kindly refer to messages for this use case on admin by selecting the respective category (Block Card).

Templates

Kindly refer to templates for this use case on admin by selecting the respective category (Block Card). /* Following are the default templates for the given flow, which can be customised to show more details in template or add more buttons using Template Editor. */

Following are the template properties-

When all cards list to be shown and list size<4. Default is carousel template 

blockcard_ALL_ACCOUNTS_TEMPLATE_ID=BlockCardAllAccounts
When all cards list to be shown as list and list size>4 and show more is enabled.
blockcard_ACCOUNTS_WITH_SHOW_MORE_TEMPLATE_ID=BlockCardAccountsWithShowMore
When all cards in the list need to be displayed for selection, after clicking show more button

blockcard_ACCOUNTS_SHOW_MORE_REQ_TEMPLATE_ID=BlockCardAccountsWithShowMore
When the list contains only one card. Default is card template

blockcard_SINGLE_ACCOUNT_TEMPLATE_ID=BlockCardSingleAcctSelection
Shows list of cards in case of card number mismatch scenario.  Default is carousel 

blockcard_ACCT_SELECT_TEMPLATE_ID=BlockCardAccountMismatch
Show all cards in a list in case of card number mismatch scenario when show more is clicked

blockcard_ACCT_SELECT_WITH_SHOW_MORE_TEMPLATE_ID=BlockCardAccountsWithShowMore

txn-productclosure_blockcard_CONFIRM_TEMPLATE_ID=BlockCardConfirm
Displays the supported block type. Default is the button template.
BLOCK_CARD_TYPE_TEMPLATE_ID=BlockCardType
To handle single account text templates

blockcard_SingleAccountMsg=BlockCardSingleAccountMsg

Hooks or Fulfillment's

Kindly refer to hooks for this use case on admin by selecting the respective category (Block Card).

Customization of Image Properties:-

To customise images. Kindly refere here

Change International Usage Of Card


Overview

Use case name Update international usage
Type Service request
Intent
  • txn-productclosure - de-activation
  • txn-cardsettings - activation
  • Entities
    • product type
    • product name
    • funding account
    • deposit amount
    • deposit tenor
    • deposit currency
    Banking products supported Cards
    Channels supported Web, Mobile, FB messenger, Alexa
    Login Yes
    2FA Yes
    API availability Yes
    Integrations done NA
    Stub data availability Yes

    Features

    Summary

    1. User can request to toggle their card’s international usage status i.e. an enabled card can be disabled , and a disabled card can be enabled for international usage.

    2. Typically for enablement a data range for usage will be sought.

    Detailed

    1. If user is traveling out of the country, they can request to activate their card for international usage.

    2. Post card selection system will expect data range (from- to ) for activation.

    1. Once changed system will provide appropriate confirmation message to the user.

    Flow CX

    Default Flow:-

    (if  want to Enabled International Usage) List of Cards -> Enter Start Date -> Enter End Date-> Confirm -> Enter OTP -> Status of International Usage.

    (if want to Disabled International Usage) List of Cards -> Confirm -> Enter OTP -> Status of International Usage.

    Sample CX for default flow

    Note: This can be flowchart / GIF or screenshot to represent OOTB flow

    line

    Facebook Flow -

    intl_usage_login intl_usage_login_page intl_usage_card_list intl_usage_card_list intl_usage_card_list intl_usage_card_list

    Sample Utterance

    Sample utterances that work as per the flow:-

    Configuration

    Generic Configuration

    internationalusage_ACCOUNT_CATEGORIES=creditcard,debitcard,forexcard

    Customisation

    Integration Customisation

    Pre-Requirement To fetch the API of credit and debit cards list, refer to the Balance Inquiry

    API for International Usage Status

    Request 

    Request URL:- [http://one-api.active.ai/banking-integration/v1/{customerId}/cards/{cardNumber}/internationalUsage/api

        customerId- String                
        cardNumber- String
    

    Schema

    {
      "accessToken": "string",
      "address": "string",
      "cardDetails": {
        "accountId": "string",
        "accountName": "string",
        "activationDate": "string",
        "amountDue": 0,
        "availableCash": 0,
        "availableCreditLimit": 0,
        "bankName": "string",
        "branchAddress": "string",
        "branchId": "string",
        "branchName": "string",
        "cardHolderName": "string",
        "cardIssuer": "VISA",
        "cardName": "string",
        "cardNumber": "string",
        "cardStatus": "ISSUED",
        "cardType": "CREDIT_CARD",
        "cashLimit": "string",
        "closingBalance": 0,
        "creditLimit": 0,
        "currencyCode": "string",
        "displayCardNumber": "string",
        "domesticATMLimit": "string",
        "domesticPOSLimit": "string",
        "expiryDate": "string",
        "internationalATMLimit": "string",
        "internationalEnabled": true,
        "internationalPOSLimit": "string",
        "isInternationalEnabled": true,
        "lastStatementBalance": 0,
        "lastStatementDate": "string",
        "maxCashLimit": "string",
        "maxCreditLimit": "string",
        "maxDomesticATMLimit": "string",
        "maxDomesticPOSLimit": "string",
        "maxInternationalATMLimit": "string",
        "maxInternationalPOSLimit": "string",
        "minimumPayment": 0,
        "openingBalance": 0,
        "outStandingAmount": 0,
        "oversearCardActivated": true,
        "overseasCardActivated": true,
        "paymentDueDate": "string",
        "permanentCreditLimit": 0,
        "productCode": "string",
        "productType": "string",
        "temporaryCreditLimit": 0
      },
      "customerId": "string",
      "customerName": "string",
      "emailId": "string",
      "mobileNumber": "string"
    }{
      "accessToken": "string",
      "address": "string",
      "cardDetails": {
        "accountId": "string",
        "accountName": "string",
        "activationDate": "string",
        "amountDue": 0,
        "availableCash": 0,
        "availableCreditLimit": 0,
        "bankName": "string",
        "branchAddress": "string",
        "branchId": "string",
        "branchName": "string",
        "cardHolderName": "string",
        "cardIssuer": "VISA",
        "cardName": "string",
        "cardNumber": "string",
        "cardStatus": "ISSUED",
        "cardType": "CREDIT_CARD",
        "cashLimit": "string",
        "closingBalance": 0,
        "creditLimit": 0,
        "currencyCode": "string",
        "displayCardNumber": "string",
        "domesticATMLimit": "string",
        "domesticPOSLimit": "string",
        "expiryDate": "string",
        "internationalATMLimit": "string",
        "internationalEnabled": true,
        "internationalPOSLimit": "string",
        "isInternationalEnabled": true,
        "lastStatementBalance": 0,
        "lastStatementDate": "string",
        "maxCashLimit": "string",
        "maxCreditLimit": "string",
        "maxDomesticATMLimit": "string",
        "maxDomesticPOSLimit": "string",
        "maxInternationalATMLimit": "string",
        "maxInternationalPOSLimit": "string",
        "minimumPayment": 0,
        "openingBalance": 0,
        "outStandingAmount": 0,
        "oversearCardActivated": true,
        "overseasCardActivated": true,
        "paymentDueDate": "string",
        "permanentCreditLimit": 0,
        "productCode": "string",
        "productType": "string",
        "temporaryCreditLimit": 0
      },
      "customerId": "string",
      "customerName": "string",
      "emailId": "string",
      "mobileNumber": "string"
    }
    

    Response

    Schema

    {
      "internationalEnabled": true,
      "isInternationalEnabled": true,
      "referenceId": "string",
      "result": {
        "message": "string",
        "messageCode": "string",
        "status": 0
      },
      "transactionStatus": "SUCCESS"
    }
    

    Following are the types to customize the integration for the International Usage:-

    Pre requirement

    Cards(Debit/Credit Card) APIs should already be integrated.

    Service API to integrate with Bank API

    Package Class Name Method Name Details
    services CardsService updateInternationalUsageFinalApiCall() You can call your API inside this method.
    domain request InternationalUsageCardRequest Request Class
    domain response InternationalUsageCardResponse Response Class
    mapper response CardsResponseMapper Map API response to this mapper class.
    model Card Fields, Getter/Setter methods

    Writing custom service and invoking in the camel route

    You can directly call your API from the integration camel by following the below steps.

    Integrating with webhook

    You can directly call your API using a workflow webhook and customize your response Refer here.

    Class Diagram

    For Card Service Request and Card Service Response, check here.

    Response Customisation

    Messages

    Kindly refer messages for this use case on admin by selecting respective category (International Usage)

    Templates

    Kindly refer Templates for this use case on admin by selecting a category (International Usage)

    Following are the Template Properties

    internationalusage_ALL_ACCOUNTS_TEMPLATE_ID=InternationalUsageAllAccounts

    internationalusage_ACCOUNTS_WITH_SHOW_MORE_TEMPLATE_ID=InternationalUsageAccountsWithShowMore

    internationalusage_ACCOUNTS_SHOW_MORE_REQ_TEMPLATE_ID=InternationalUsageAccountsWithShowMore

    internationalusage_SINGLE_ACCOUNT_TEMPLATE_ID=InternationalUsageAcctSelection

    internationalusage_ACCT_SELECT_TEMPLATE_ID=InternationalUsageAccountMismatch

    internationalusage_ACCT_SELECT_WITH_SHOW_MORE_TEMPLATE_ID=InternationalUsageAccountsWithShowMore

    Hooks or Fulfilments

    Kindly refer Hooks or Fulfilments for name(International Usage) use case on admin as guided on here**

    Customization of Image Properties:-

    To customise images. Kindly refere here

    Cheque Book Request


    Overview

    Use case name Cheque Book Request
    Type Account service request
    Intent txn-issuechequendd
    Entities
    • banking.product-account-number
    • sys.user-details-type
    • sys.number
    • sys.cancellation
    • sys.affirmation
    • sys.user-details-type
    • sys.confirmation
    • sys.negation
    Banking products supported CASA Accouts
    Channels supported Web, Whatsapp, FB, GA
    Login Yes
    2FA Yes
    API availability Yes
    Integrations done NA
    Stub data availability Yes

    Features 

    Summary

    1. The user will be able to order Cheque book

    2. They can specify the account number to order Cheque book

    3. They can ordered cheque book on permanent and business address

    Detailed 

    1. For Ordering the Cheque Book, we need to give some utterances

      1. “Order cheque book”
      2. “Request cheque book”
    2. After the utterance, Order Cheque Book, select the casa account for ordering the cheque book

    3. Select the address --> permanent and business address

    4. Confirm the details 

    5. Enter the OTP

    6. You will get the status messsage about order cheque book

    Flow CX

    Default Flow

    LIST OF Accounts ---> Select the Address (if both avaialble) ---> Confirmation ---> OTP --->  Status of Ordered Cheque Book

    Sample utterances that works as per the flow

    Configurations

    Generic Configurations

    API for  Fetching Order Cheque Book Details

    Account API :- Mentioned Above  Cheque Book Confirm API :-  Refer this  http://one-api.active.ai/banking-integration/v1/swagger-ui.html#!/check-book-api-controller/confirmChequeBookOrderUsingPOST

    Pre requirement-

    Package Class Name Method Name Details services
    CheckBookServices getChequeBookOrderConfirmResponseEntity() You can call your API inside this method. domain-->request
    ChequeBookOrderConfirmRequest

    Request Class domain-->response
    ChequeBookOrderConfirmResponse

    Response Class mapper-->response
    CheckBookResponseMapper

    Map API response to this mapper class. model
    Account

    Fields, Getter/Setter methods Following are the types to customise the integration:-

    Writing custom service and invoking in the camel route You can directly call your API from the integration camel by following the below steps.

    Check for following properties-Route to fetch Cheque Book Request Confirmation 

    CHEQUE_BOOK_REQUEST_CONFIRM_ROUTE_URI=direct:get.chequebook.request.confirm.response

    Templates 

    txn-issuechequendd_ALL_ACCOUNTS_TEMPLATE_ID=ChequeBookAccounts txn-issuechequendd_SINGLE_ACCOUNT_TEMPLATE_ID=ChequeBookAccounts txn-issuechequendd_ACCT_SELECT_TEMPLATE_ID=ChequeBookAccountsMismatch txn-issuechequendd_ACCT_SELECT_WITH_SHOW_MORE_TEMPLATE_ID=ChequeBookAccountsMismatch

    txn-issuechequendd_SingleAccountMsg=ChequeBookSingleAccountMsg txn-issuechequendd_AcctConfirm=ConfirmAccountChequeBook CHEQUEBOOK_LEAF_TEMPLATE=ChequebookLeaf txn-issuechequendd_CONFIRM_TEMPLATE_ID=ChequeBookConfirm CHEQUEBOOK_SUCCESS_HTML_TEMPLATE_NAME=ChequeBookSuccess

    https://flow-us.active.ai/morfeuswebsdk/#8400788b-eaff-4365-9920-138cb9ebbcb7?hosted=true

    From the above link, you can create the video/GIF required

    Order cheque book

    username -stuart password -> stuart@123

    Convert Transactions To Installments


    Overview

    Use case name Convert card transactions to installments
    Type transactions
    Intent txn-cardsettings
    Entities
    • Card type - Debit , Credit
    • Carrier - VISA, MasterCard ...
    • Card number - Numeric card number
    • Transaction amount
    • Transaction ID
    • Number of months in payment plan
    • Interest rate
    • Interest amount
    Banking products supported Cards
    Channels supported Web, Mobile, FB messenger, Alexa
    Login Yes
    2FA Yes
    API availability Yes
    Integrations done NA
    Stub data availability Yes

    Features

    Summary

    1. The user can request for converting high value transactions to installment payment plan.

    2. They can choose from eligible transactions and proceed for conversion.

    3. Payment plan will be presented for user selection.

    Detailed

    1. User may wish to defer high value credit card transactions and pay in installments.

    2. If eligible transactions (as per configuration) are present across cards, they will need to select one of the cards first and then the ‘transactions’ from that card.

    3. For the selected transactions , user will be presented with the payment plan (installment options) to choose from say 3 months, 6 months etc.

    4. User will then have to then confirm to proceed with the conversion.

    Flow CX

    Different flows for Convert TXNS to Installments

    Default Flow:- List of Cards -> Select Transaction for Conversion-> Select Installment Plan-> Confirm -> Enter OTP -> Status of Installments Conversion.

    Note: This can be flowchart / GIF or screenshot to represent OOTB flow

    line

    Facebook Flow -

    cc_emi_login cc_emi_login_page cc_emi_card_list cc_emi_transaction_list cc_emi_emi_plan cc_emi_confirm cc_emi_otp cc_emi_status

    Sample Utterance

    Sample utterances that work as per the flow:- - Convert Transactions to Installments of my card.

    Configuration

    Generic Configuration

    Different product categories supported in Convert TXNS to Installments, as configured the supported categories are Credit Card. Ex:- If ‘Prepaid Card’ need to be supported, the same need to convertemi_ACCOUNT_CATEGORIES= creditcard

    No. of cards to show in the list. Default carousel view is supported, can be changed to list by updated the template. Template details are detailed below.
    convertemi_NO_OF_ITEMS_TO_SHOW_IN_LIST=10

    Different Range of months supported for Installments Conversion to convert transactions into installments for Credit Card. EMI_AMOUNT_RANGE_1_OPTIONS = 3 months,6 months,12 months EMI_AMOUNT_RANGE_2_OPTIONS= 3 months,6 months,12 months,18 months

    Customisation

    Integration Customisation

    API for  Fetching Installment Details

    Request

    Request URL :- [http://one-api.active.ai/banking-integration/v1/{customerId}/cards/creditcards/{cardNumber}/convertemi

        customerId- String
        cardNumber- String       
    

    Response

    Schema

    {
      "listofEMIPlan": [
        {
          "amount": 0,
          "emiAmount": 0,
          "gst": 0,
          "interestRate": "string",
          "processingFee": 0,
          "tenure": {
            "days": "string",
            "months": "string",
            "tenureFormatted": "string",
            "years": "string"
          },
          "totalAmount": 0,
          "transactionSerialNumber": "string"
        }
      ],
      "referenceId": "string",
      "result": {
        "message": "string",
        "messageCode": "string",
        "status": 0
      }
    }
    

    API for Installment Conversion Status

    Request

    Request URL: - [http://one-api.active.ai/banking-integration/v1/{customerId}/cards/creditcards/{cardNumber}/convertemi/confirm

        customerId- String
    
        cardNumber- String
    

    Schema

    {
      "accessToken": "string",
      "address": "string",
      "cardDetails": {
        "accountId": "string",
        "accountName": "string",
        "activationDate": "string",
        "amountDue": 0,
        "availableCash": 0,
        "availableCreditLimit": 0,
        "bankName": "string",
        "branchAddress": "string",
        "branchId": "string",
        "branchName": "string",
        "cardHolderName": "string",
        "cardIssuer": "VISA",
        "cardName": "string",
        "cardNumber": "string",
        "cardStatus": "ISSUED",
        "cardType": "CREDIT_CARD",
        "cashLimit": "string",
        "closingBalance": 0,
        "creditLimit": 0,
        "currencyCode": "string",
        "displayCardNumber": "string",
        "domesticATMLimit": "string",
        "domesticPOSLimit": "string",
        "expiryDate": "string",
        "internationalATMLimit": "string",
        "internationalEnabled": true,
        "internationalPOSLimit": "string",
        "isInternationalEnabled": true,
        "lastStatementBalance": 0,
        "lastStatementDate": "string",
        "maxCashLimit": "string",
        "maxCreditLimit": "string",
        "maxDomesticATMLimit": "string",
        "maxDomesticPOSLimit": "string",
        "maxInternationalATMLimit": "string",
        "maxInternationalPOSLimit": "string",
        "minimumPayment": 0,
        "openingBalance": 0,
        "outStandingAmount": 0,
        "oversearCardActivated": true,
        "overseasCardActivated": true,
        "paymentDueDate": "string",
        "permanentCreditLimit": 0,
        "productCode": "string",
        "productType": "string",
        "temporaryCreditLimit": 0
      },
      "customerId": "string",
      "customerName": "string",
      "emailId": "string",
      "mobileNumber": "string",
      "selectedEMIPlan": {
        "amount": 0,
        "emiAmount": 0,
        "gst": 0,
        "interestRate": "string",
        "processingFee": 0,
        "tenure": {
          "days": "string",
          "months": "string",
          "tenureFormatted": "string",
          "years": "string"
        },
        "totalAmount": 0,
        "transactionSerialNumber": "string"
      }
    }
    
    

    Response

    Schema

    {
      "referenceId": "string",
      "result": {
        "message": "string",
        "messageCode": "string",
        "status": 0
      },
      "status": "SUCCESS"
    }
    

    Following are the types to customize the integration for the Convert TXNS to Installments

    Pre requirement-

    Cards(Debit/Credit Card) APIs should already be integrated.

    Service API to integrate with Bank API

    Package Class Name Method Name Details
    services CardsService getConvertEMIResponseEntity(),getConvertEMIConfirmResponseEntity() You can call your API inside this method.
    domain-->request ConvertEMIConfirmRequest Request Class
    domain-->response ConvertEMIResponse,ConvertEMIConfirmResponse Response Class
    mapper-->response CardsResponseMapper Map API response to this mapper class.
    model Card Fields, Getter/Setter methods

    Following are the types to customise the integration:-

    Writing custom service and invoking in the camel route

    You can directly call your API from the integration camel by following the below steps.

    Integrating with webhook

    You can directly call your API using a workflow webhook and customize your response refer here.

    Response Customisation

    Messages

    Kindly refer messages for this use case on admin by selecting respective category (Installment Conversion)

    Templates

    Kindly refer Templates for this use case on admin by selecting a category (Installment Conversion)

    Following are the Template Properties

    Default card list templates are carousel to change it to list use template editor

    Hooks or Fulfilments

    Customization of Image Properties:-

    To customise images. Kindly refere here

    Credit Card Payment


    Overview

    Use case name Credit card bill payment
    Type Transaction
    Intent txn-moneymovement
    Entities
    • Card type - Debit , Credit
    • Carrier - VISA, MasterCard ...
    • Card number - Numeric card number
    • Amount type - Total amount due, Minimum amount due, total outstanding or any amount
    • Amount
    Banking products supported Cards
    Channels supported Web, Mobile, FB messenger, Alexa
    Login Yes
    2FA Yes
    API availability Yes
    Integrations done NA
    Stub data availability Yes

    Features

    Summary

    1. The user will be able to pay their credit card dues

    2. It can be user specified amount or any of the supported options like total amount due, minimum amount due, total outstanding

      Detailed

    3. User can express interest in paying credit card bill.

    4. User needs to confirm account from which the payment will be effected (if more than one account exists)

    5. If more than one card is available for user, they will be prompted to choose from the list. Note: If user did not indicate credit card payment earlier, they should choose ‘payee type’ as ‘credit card’ in ‘payee category’ step.

    6. For the selected card system will display payment options provided by API like

    1. User will need to input and confirm the amount in case of 3.d (only confirm in other cases) and provide 2FA such as OTP if configured.

    2. System will provide success/failure confirmation, based on payment API response.

    Flow CX

    Flows supported for Card Payment

    From Fund Transfer Flow-

    Pre requirement - Fund Transfer flow should be up and working. Refer here to setup Fund Transfer.

    Flow supported for Credit Card Payment

    Default Flow - Account Selection → Payee Category Selection→ Card Selection → Card Payment Amount → Confirmation → OTP → Credit Card payment status

    Sample CX for (Transfer → Card Payment) flow

    Note: This can be flowchart / GIF or screenshot to represent OOTB flow

    line

    Facebook Flow -

    pay_cc_bills_login pay_cc_bills_login pay_cc_bills_login pay_cc_bills_login pay_cc_bills_login pay_cc_bills_login                                  

    Functionality Flow (Transfer → Card Payment)

    CC_Transfer_Flow

    From Bill Payment Flow-

    Pre requirement - Bill Payment flow should be up and working. Refer here to set up
      Bill Payment.
    Flow - Account Selection → Payee Selection → Card List → Card Payment amount type selection → Confirmation → OTP → Credit Card payment status

    Sample CX for (Bill Payment → Card Payment ) flow

    Note: This can be flowchart / GIF or screenshot to represent OOTB flow

    line

    Functionality Flow (Bill Payment → Card Payment )

    Flow

    Default Card Payment Flow

    Account Selection → Card Selection  → Card Payment Amount → Card Payment Confirmation → OTP step → Card Payment Status

    Sample CX for default flow

    Note: This can be flowchart / GIF or screenshot to represent OOTB flow

    line

    Sample utterances that work as per the flow

    Flow

    Configurations

    Business Rules

    Credit card

    Specifies the daily cumulative credit card bill payment transactions per user
    Daily Transaction Count

    Specifies the daily cumulative maximum amount for credit card bill payment transaction per user
    Daily Transaction Limit (Amount)

    Specifies the maximum amount for a credit card bill payment transaction
    Maximum Transaction Limit (Amount)

    Specifies the interval between each credit card bill payment per session
    Minimum Interval between Transactions (mins)

    Specifies the minimum amount for a credit card bill payment transaction
    Minimum Transaction Limit (Amount)

    One Time Credit Card

    Specifies the daily cumulative credit card bill payment transactions per user
    Daily Transaction Count

    Specifies the daily cumulative maximum amount for credit card bill payment transaction per user
    Daily Transaction Limit (Amount)

    Specifies the maximum amount for a credit card bill payment transaction
    Maximum Transaction Limit (Amount)

    Specifies the minimum amount for a credit card bill payment transaction
    Minimum Transaction Limit (Amount)

    Generic Configurations

    /* Supported card payment types can be added here */
    CARD_PAYMENT_SUPPORTED_MODIFIERS=outstanding,statement,minimumamount,minimumdue,dueamount

    /* To enable or skip  transaction remarks use this property */
    TRANSFER_IS_REMARKS_REQUIRED_CREDIT_CARD=no

    /* Mapping of parameters from payload to template*/
    outstanding_PAYEE_PROP=lastStatementBalance
    dueamount_PAYEE_PROP=lastStatementBalance
    minimumdue_PAYEE_PROP=minDueAmount
    minimumamount_PAYEE_PROP=minDueAmount

    /*Debiting Accounts supported for card payment */
    cardpayment_ACCOUNT_CATEGORIES=casa

    /* Payment supported for payee categories default value Credit Card */
    cardpayment_SUPPORTED_PAYEE_CATEGORIES=CREDIT_CARD

    #####Enabling Card Payment through Fund Transfer ####
    Different types of transfers supported in Transfer Flow, as configured the supported types are Self, internal_domestic
    E.g. If Credit Card’ need to be supported, the same need to appended as CREDIT_CARD
    transfer_SUPPORTED_PAYEE_CATEGORIES=SELF,INTERNAL_DOMESTIC

    #####Enabling Card Payment through Bill Payment ####
    Different types of payments supported in Bill Payment, as configured the supported types are credit card, bill payment
    billpayment_SUPPORTED_PAYEE_CATEGORIES=CREDIT_CARD,BILL_PAYMENT

    To enable or disable Adhoc Credit Card Payment IS_ADHOC_CREDIT_CARD_ENABLED=true

    Properties Supported for Adhoc credit card payment (Values to be entered by the user for  Adhoc credit card payment )
    ADHOC_CREDIT_CARD_SUPPORTED_PROPERTIES=CARD_NUMBER,CVV,EXPIRY_DATE,DOB,AMOUNT,REMARKS,BANK_NAME,CARD_ISSUER

    #Properties and validation regex for Adhoc credit card payment
    # Credit card Number #
    ADHOC_CREDIT_CARD_CARD_NUMBER=CARD NUMBER,^[0-9]{10}$,CARD_NUMBER
    # Credit card CVV Number #
    ADHOC_CREDIT_CARD_CVV=CVV/CSC,^[0-9]{3}$,CVV
    # Credit card Expiry Date #
    ADHOC_CREDIT_CARD_EXPIRY_DATE=Card Expiry Date in format MM/YY,([0-9]{2}/[0-9]{2}),EXPIRY_DATE
    # Card holder DOB #
    ADHOC_CREDIT_CARD_DOB=Date of birth in format dd/MM/YY,([0-9]{2}/[0-9]{2}/[0-9]{2}),DOB
    # Card holder Name #
    ADHOC_CREDIT_CARD_HOLDER_NAME=Please enter card holder name,^[a-zA-Z]$,HOLDER_NAME
    #Bank IFSC Code #
    ADHOC_CREDIT_CARD_IFSC_CODE=Please enter IFSC code ,([A-Z|a-z]{4}+[0]+[A-Za-z0-9]{6}),IFSC_CODE
    # Card payment optional fields for user identity validation e.g pan number, adhar number etc #
    ADHOC_CREDIT_CARD_OPTIONAL_FIELD=Please enter the PAN Card number,^[a-zA-Z0-9]$,OPTIONAL_FIELD
    # Payment Amount #
    ADHOC_CREDIT_CARD_AMOUNT=Please enter the amount,([0-9]+(\\.[0-9][0-9]?)?),AMOUNT
    # Card Payment Remarks #
    ADHOC_CREDIT_CARD_REMARKS=Please enter remarks,^[a-zA-Z0-9]$,REMARKS
    #Card Bank Name#
    ADHOC_CREDIT_CARD_BANK_NAME=Please enter bank name ,^[a-zA-Z]$,BANK_NAME
    #Card Issuer  #
    ADHOC_CREDIT_CARD_CARD_ISSUER=Please enter the card issuer,^[a-zA-Z]$,CARD_ISSUER

    Customisation

    Integration Customisation

    Integration can be done in so many ways

    1. Microservices provided by RB(Banking-Integration)

    * Here only default flows can be integrated

    * The explanation for basic details were given here

    1. Using camel routes of RB itself

    * Here need to understand Request and response of each RB domain objects

    Microservices provided by RB(Banking-Integration)

    API for card payment  status

    Request :-

    Request URL:  http://one-api.active.ai/banking-integration/v1/{customerId}/cards/creditcards/payment/confirm customerId - String cardNumber - String Schema

    {
    
      "accessToken": "string",
    
      "address": "string",
    
      "amount": "string",
    
      "customerId": "string",
    
      "customerName": "string",
    
      "emailId": "string",
    
      "mobileNumber": "string",
    
      "payeeAccountId": "string",
    
      "payeeAccountNumber": "string",
    
      "payeeBankId": "string",
    
      "payeeBranchId": "string",
    
      "payeeEmailId": "string",
    
      "payeeIFSCCode": "string",
    
      "payeeId": "string",
    
      "payeeMobileNumber": {
    
        "phoneCountryCode": "string",
    
        "phoneNo": 0,
    
        "phoneType": "PRIMARY"
    
      },
    
      "payeeName": "string",
    
      "payeeType": "INTERNAL\_DOMESTIC",
    
      "purpose": "string",
    
      "remarks": "string",
    
      "sourceAccountId": "string",
    
      "type": "string"
    
    }
    

    Response: Status : 200 Meaning: OK Description: OK Schema:

    {
    
      "chargeTransactionFee": true,
    
      "isChargeTransactionFee": true,
    
      "result": {
    
        "message": "string",
    
        "messageCode": "string",
    
        "status": 0
    
      },
    
      "transactionFee": 0,
    
      "transactionStatus": "SUCCESS",
    
      "transferAmount": 0,
    
      "txnReferenceId": "string"
    
    }
    

    Using camel routes of RB itself

    As described in the above configurations need to create specific routes from the RB exposed routes, will suggest don’t change any base routes without any notice to the product team

    Card payment via Fund Transfer flow

    Default Card Payment flow

    Card Payment API.

    Request Object:- Figure 1.1 describes the class diagram for CardPaymentRequest Object of RB with fields and dependencies.

    Response Object:- Figure 1.2 describes the class diagram for CardPaymentResponse Object of RB With fields and dependencies.

    CardPaymentRequest Figure 1.1

    CardPaymentResponse Figure 1.2 

    Response Customisation

    Messages

    Kindly refer to messages for this use case on admin by selecting the respective category (Card  Payment).

    Templates

    Kindly refer to templates for this use case on admin by selecting the respective category (Card  Payment).
    For the template configurations refer transfer flow.

    Hooks or Fulfillment-

    Kindly refer to hooks for this use case on admin by selecting the respective category (Card  Payment).

    Customization of Image Properties:-

    To customise images. Kindly refere here

    Download Statement


    Overview

    Use case name Download Statement
    Type Transaction
    Intent qry-transaction-history
    Entities
    • Statement month
    • Product type
    • Account number
    • Date range
    Banking products supported Account
    Channels supported Web, Mobile, FB messenger, Alexa
    Login Yes
    2FA No
    API availability Yes
    Integrations done NA
    Stub data availability Yes

    Summary

    1. User can view the transaction history their accounts

    2. User can download the transaction details for their accounts

    3. View/download/sharing of transaction history is available for current month, last moth and the species date range.

    4. User can also send the transaction details to their registered email id.

    5. Supported formats to download is pdf, csv and excel.

    Detailed

    1. User can download the transaction history for current month, last month or the given date range in the following supported format i.e. pdf,csv and excel.

    2. User can simply say ‘download statement’.

      1. User will be asked to login.
      2. Post login success account selection step will come.
      3. On selection the account user will be asked to select the last month/current month/ enter the date range option to download the statement.
      4. If user selects the last month or current month then option appears to select the supported format.
      5. If user selects the date range then space range in format  dd-mm-yyyy must be entered by user for example 12-12-2020.
      6. Finally user can choose to display or download or send statement to the registered email id.

    Flow CX

    Default Flow - List of Cards ---> Select the period for the statement copy ---> select mode of receiving the statement ---> display/download/send as per user choice.

    Download Statement
    Figure - Download statement

    Facebook Flow

    Download Statement
    Figure - Facebook flow for Download Statement 1
    Download Statement
    Figure - Facebook flow for Download Statement 2
    Download Statement
    Figure - Facebook flow for Download Statement 3
    Download Statement
    Figure - Flow Chart for Download Statement 4

    Configurations

    Generic Configurations

    Account categories supported for download statement downloadStatement_ACCOUNT_CATEGORIES=casa

    Different download format supported are SUPPORTED_DOWNLOAD_FORMATS=pdf,xls,csv

    Duration fo time to download the statement SUPPORTED_DATE_RANGE=CURRENT_MONTH,LAST_01_MONTH

    Mode of receiving the statements SUPPORTED_STATEMENT_MODES=display,mail,download

    Customisations

    Integration Customisation

    For Integration Customisation, please refer here.

    Messages

    Kindly refer to messages for this use case on admin by selecting the respective category (Download Statement).

    Templates

    Kindly refer to templates for this use case on admin by selecting the respective category (Download s).

    Following are the default templates for the given flow, which can be customised to show more details in template or add more buttons using Template Editor.

    When all cards list to be shown and list size<4. Default is carousel template  Statement having the account list with show more option downloadStatement_ACCOUNTS_WITH_SHOW_MORE_TEMPLATE_ID=StatementAccountsListWithShowMore

    Display the account list with show more option downloadStatement_ACCOUNTS_SHOW_MORE_REQ_TEMPLATE_ID=StatementAccountsList

    On account number mismatch display the accounts list downloadStatement_ACCT_SELECT_TEMPLATE_ID=StatementAccountsList

    On account number mismatch display the accounts list with show more downloadStatement_ACCT_SELECT_WITH_SHOW_MORE_TEMPLATE_ID=StatementAccountsListWithShowMore

    To show the list of balance downloadStatement_balance_list=AccountBalanceList downloadStatement_SHOWMORE_LIST_TEMPLATE=TransactionListShowMore downloadStatement_LIST_TEMPLATE=TransactionList

    Hooks or Fulfillment's

    Kindly refer to hooks for this use case on admin by selecting the respective category (Download Statement).

    Customization of Image Properties

    To customise images, kindly refer here

    Fund Transfer


    Overview

    Use case name Funds transfer
    Type Transaction
    Intent txn-moneymovement
    Entities
    • transaction amount
    • transaction currency
    • ‘from’ account number / P2P ID
    • transfer type (network or payee type reference)
    • payee name OR ‘to’ account number / P2P ID
    • bank identifier
    NOTE: P2P ID can be mobile number, email OR network provided alternate account number
    Banking products supported operative accounts (Checking & Savings)
    Channels supported Web, Mobile, FB messenger, Alexa
    Login Yes
    2FA Yes
    Integrated API availability Yes
    Integrations done Yes(Finastra & Corelation)
    Stub data availability Yes

    Features

    Summary

    1. User can transfer funds between their accounts

    2. User can send money to their registered payees within their bank and also other banks

    3. One time (ad hoc) transfer without payee registration is possible

    4. Transfer to peers using mobile number or supported identifiers is possible

    5. Scheduling a transfer for a future date and making it a recurring instruction is possible

    6. In terms of personalisation, system supports

      1. repeating a past /favourite transfer, and
      2. preempts debit account selection based on past transactions

    Detailed

    1. User can initiate a transaction by saying

      1. comprehensive - ‘transfer 500 $ to Jack from acc ending 5012’
      2. simple - ‘pay Jack’ OR ‘send money’ etc
    2. System will ask debit account selection if more than one account exists.

    3. To arrive at target account/beneficiary, system will prompt payee type selection among enabled types and if at least 1 payee exists in that category

      1. own account - user’s own accounts with the FI
      2. same bank account - payees of user who have account in same FI
      3. other bank account - payees of user who hold account in other FI
      4. one time / adhoc - transfer without registering as payee
    4. Once type is selected, user will be asked to select specific payee if more than one exists for the selected category.

    5. Please note that the beneficiary can also be indirect reference to the underlying account (ex: VPA or MMID of the UPI & NEFT systems of India)

    6. Once the source and target accounts are established, the transaction amount should be input by the user if not originally specified.

    7. System will provide option to schedule the payment for a future date or set up recurring instruction.

    8. Before final confirmation user can add a ‘remark’ to the transaction , which will be used in statements to describe the transaction.

    9. At any time, user can ask for change in details provided earlier, ex: during confirmation user can say ' Change amount to ' , which will be picked up by the system.

    10. After additional authentication (like OTP) system will correspond with the back end system and confirm processing of the transaction.

    Supported Fund Transfer types

    Same bank transfer

    1. Registered Payee (Default)
    2. One-time transfer (Default)

    Other bank transfer

    1. Registered Payee (Default)
    2. One-time transfer (need to configure)

    Self/Own account

    1. Own accounts (Default)
    2. Other Categories

    Quick Pay (need to configure)

    1. Email-id & payee name
    2. Mobile number & payee name

    Via UPI ID(need to configure)

    1. Via MMid(need to configure)

    Sample CX for default flow

    Note: This can be flowchart / GIF or screenshot to represent OOTB flow

    line

    Facebook Flow -

    transfer_login transfer_login_page repeat_or_new_transfer transfer_acc_list transfer_payee_category_and_payee_list transfer_amount_and_remarks transfer_confirm transfer_otp transfer_status

    Flow chart:-

    Flow

    Configurations

    Business Rules

    Validates for self bank credit card
    Amount validation for self bank credit card

    Specifies the time zone for a NEFT transaction
    Time zone for NEFT timing

    Inter Bank

    Specifies the maximum transactions done per day via inter bank funds transfer per user
    Daily Transaction Count

    Specifies the maximum funds transferred per day via inter bank funds transfer per user
    Daily Transaction Limit (Amount)

    Specifies the maximum funds transferred per day via inter bank funds IMPS transfer per user
    Daily Transaction Limit (Amount) for IMPS

    Specifies the maximum amount per IMPS inter bank funds transfer
    IMPS Maximum Transaction Limit (Amount)

    Specifies the minimum amount per IMPS inter bank funds transfer
    IMPS Minimum Transaction Limit (Amount)

    Specifies the interval between each inter bank funds transfer per session
    Minimum Interval between Transactions (mins)

    Specifies the maximum amount per NEFT inter bank funds transfer
    NEFT Maximum Transaction Limit (Amount)

    Specifies the minimum amount per NEFT inter bank funds transfer
    NEFT Minimum Transaction Limit (Amount)

    Specifies the maximum amount per RTGS inter bank funds transfer
    RTGS Maximum Transaction Limit (Amount)

    Specifies the minimum amount per RTGS inter bank funds transfer
    RTGS Minimum Transaction Limit (Amount)

    Intra Bank

    Specifies the maximum transactions done per day for intra bank funds transfer per user
    Daily Transaction Count

    Specifies the maximum funds transferred per day via intra bank funds transfer per user
    Daily Transaction Limit (Amount)

    Specifies the maximum amount for a intra bank funds transfer transaction
    Maximum Transaction Limit (Amount)

    Specifies the interval between every intra bank funds transfer transaction per session
    Minimum Interval between Transactions (mins)

    Specifies the minimum amount for a intra bank funds transfer transaction
    Minimum Transaction Limit (Amount)

    MMID

    Specifies the maximum amount per MMID funds transfer
    Per Transaction Max Amount

    Specifies the minimum amount per MMID funds transfer
    Per Transaction Min Amount

    Specifies the maximum transaction amount limit per day for MMID funds transfer
    transaction amount per day limit

    Specifies the maximum transaction count limit per day for MMID funds transfer
    transaction count per day limit

    Specifies the interval between each MMID funds transfer
    transaction frequency

    Quick Pay

    Specifies the maximum amount per Quick Pay funds transfer
    Per Transaction Max Amount

    Specifies the minimum amount per Quick Pay funds transfer
    Per Transaction Min Amount

    Specifies the maximum transaction amount limit per day for Quick Pay funds transfer
    Transaction amount per day limit

    Specifies the maximum transaction count limit per day for Quick Pay funds transfer
    Transaction count per day limit

    Specifies the interval between each Quick Pay funds transfer
    Transaction frequency

    Self

    Specifies the maximum transactions done per day via own account funds transfer per user
    Daily Transaction Count

    Specifies the maximum funds transferred per day via own account funds transfer per user
    Daily Transaction Limit (Amount)

    Specifies the maximum amount for an own account funds transfer transaction
    Maximum Transaction Limit (Amount)

    Specifies the interval between every own account funds transfer transaction per session
    Minimum Interval between Transactions (mins)

    Specifies the minimum amount for an own account funds transfer transaction
    Minimum Transaction Limit (Amount)

    Transaction Timings

    Specifies NEFT Transaction Timings on Saturday
    NEFT Saturday Transaction Timings

    Specifies NEFT Transaction Timings from Monday to Friday
    NEFT Transaction Timings from Monday to Friday

    Specifies RTGS Transaction Timings on Saturday RTGS Saturday Transaction Timings

    Specifies RTGS Transaction Timings from Monday to Friday
    RTGS Transaction Timings from Monday to Friday

    UPI

    Specifies the maximum amount per UPI funds transfer
    Per Transaction Max Amount

    Specifies the minimum amount per UPI funds transfer
    Per Transaction Min Amount

    Specifies the maximum transaction amount limit per day for UPI funds transfer
    Transaction amount per day limit

    Specifies the maximum transaction count limit per day for UPI funds transfer
    Transaction count per day limit

    Specifies the interval between each UPI funds transfer
    Transaction frequency

    Generic Configuration

    You can provide supported account Categories here which were shown to be as debitable accounts(casa, creditcard, debitcard)
    txn-moneymovement_ACCOUNT_CATEGORIES=casa

    Supported values eg: checking,savings
    txn-moneymovement_SUPPORTED_ACCOUNT_TYPES=saving,checking

    to invoke balance API during the flow in rb by default
    txn-moneymovement_INVOKE_BALANCE_API=false txn-moneymovement_INVOKE_ACCOUNT_DETAILS_API=false

    Once modifiers are processed then to decide on how the response type to be
    txn-moneymovement_RESPONSE_TYPE=TEMPLATE

    payee types supported EXISTING_PAYEE(added beneficiaries) ADHOC_PAYEE(using details from customer to identify payee)
    txn-moneymovement_SUPPORTED_PAYEE_TYPES=EXISTING_PAYEE,ADHOC_PAYEE

    the below account categories will be added as payees to payee list
    TRANSFER_SUPPORTED_PAYEE_ACCOUNT_CATEGORIES=casa,creditcard

    OWN Account as payee needs to be fetch from another api or we can use accounts which we got on account summary api by default it will be "no" IS_OWN_ACCOUNTS_FROM_PAYEE_RESPONSE=no IS_SHOW_TRANSFER_CATEGORIES=yes

    Payee category to be shown for ADHOC
    txn-moneymovement_SUPPORTED_ADHOC_PAYEE_CATEGORIES=ONE_TIME_TRANSFER

    no of transactions fetched from DB by default value is 3 and this can be customised based on channel
    For websdk rb maintaining default value as 5
    RECENT_TXN_COUNT_W=5

    IsBalanceCheck Required txn-moneymovement_IS_BALANCE_CHECK_REQUIRED=yes

    The constant take from dialog model to validate balance with the value present on the given constant
    txn-moneymovement_TRANSACTION_AMOUNT_DIALOGMODEL_PROP=amount

    Supported payee types to add when doing transfer by giving payee identification details
    ADD_PAYEES_SUPPORTED_PAYEE_CATEGORIES_CSV=MMID,INTERNAL_DOMESTIC,EXTERNAL_DOMESTIC,ADHOC_CREDIT_CARD

    integration routes customisation directly from RB
    FUND_TRANSFER_PREPROCESS_URI=direct:rb.demobank.stub.transfer.confirm.api

    this is currently used in recharge can we get this removed from current properties of transfer
    FUND_TRANSFER_CONFIRM_URIthis is for bill payment but written in FT=direct:rb.demobank.stub.transfer.confirm.api
    txn-moneymovement_ROUTE_URI no where get this use case kindly validate this=direct:retail.banking.transaction.transfer
    FUND_TRANSFER_VALIDATION_URI=direct:demobank.stub.transfer.validation
    FT_INVOKE_ACCOUNT_VALIDATION_URI=direct:demobank.stub.getAccountsthese were axis specific we can remove these things

    is multiple call for get payees by default this is false from rb
    IS_MULTIPLE_API_CALL_FOR_GET_PAYEES=false
    if multiple call for payees then need to set this code with multiple routes which rb will initiate one by one MULTIPLE_PAYEE_URIS=direct:demobank.stub.getInternalDomesticPayees, direct:demobank.stub.getExternalDomesticPayees

    in case if single API to get all payees
    PAYEE_ROUTE_URI=direct:demobank.stub.payees

    integration ifsc code lookup
    IFSC_CODE_LOOKUP_URI=direct:rb.demobank.stub.ifsc.code.lookup
    IFSC_CODE_LOOKUP_URI=direct:bankname.invoke.get.ifsc.codes.for.bankname.api

    Use prefered account from customer from a db rather asking for account selection by default we disabled this for all channels
    channelType like w->websdk,aa->alexa
    txn-moneymovement_{channelType}_USE_DEFAULT_ACCOUNT=yes

    Default values from RB maintained on file:-
    txn-moneymovement_gh_USE_DEFAULT_ACCOUNT=yes
    ios sdk
    txn-moneymovement_i_USE_DEFAULT_ACCOUNT=yes
    andriod sdk
    txn-moneymovement_a_USE_DEFAULT_ACCOUNT=yes
    alexa
    txn-moneymovement_aa_USE_DEFAULT_ACCOUNT=yes

    Other Configurations

    1. StatmentTransaction timings - cutoff time config - holiday calendar to have the list of holidays including Sundays and Saturdays (2nd and 4th Saturday of the month)
      CHECK_CUTOFFTIME_FOR_TRANSFER_TYPES=NEFT,RGS
      TRANSFER_WEEKDAYS=MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY
      Date will be displayed based on the given format
      FT_UI_DATE_FORMAT=MMM dd, yyyy
      Time will be displayed based on the given format
      FT_UI_TIME_FORMAT=hh:mm:ss a
      1. save preferred account for transfer where helps to show the prefered account selection for next transaction AFTER_TRANSFER_ASK_SAVE_DEBIT_ACCOUNT=yes

    2. if the below is set to no it will silently save the account without asking for confirmation
      AFTER_TRANSFER_ASK_SAVE_DEBIT_ACCOUNT_SINGLE_ACCOUNT=no

    3. after account selecting, do you want to show confirmation again, this is for alexa use case, where one more confirmation will be shown to the user after account selection
      txn-moneymovement_SHOW_ACCOUNT_CONFIRM_FOR_SELECTION=no
      txn-moneymovement_SHOW_ACCOUNT_CONFIRM_FOR_SELECTION_aa=yes
      Sorting the payee list based on payee name
      IS_PAYEE_LIST_SORT_ON_PAYEE_NAME=yes
      On payee name entered by user will validate based on this regex
      PAYEE_NAME_REGEX=^[a-zA-Z0-9]*$
      On VPA entered by user will validate based on this regex
      VIRTUAL_PAYMENT_ADDRESS_PATTERN=(?i![(sad)][A-Z0-9])@([A-Z0-9])(?!.))
      On email id entered by user will validate based on this regex
      EMAIL_ID_PATTERN=([_A-Za-z0-9-+](.[_A-Za-z0-9-])@[A-Za-z0-9-](\\.[A-Za-z0-9])(.[A-Za-z]{2,}))
      On mobile number entered by user will validate based on this regex
      MOBILE_NUMBER_PATTERN=((((\\+)?91)?(\\s)([\\-])?(\\s))?|0)?([789]d{9})
      On IFSC code entered by user will validate based on this regex
      IFSC_CODE_PATTERN=([A-Z|a-z]{4}[0][A-Za-z0-9]{6})
      On MMID entered by user will validate based on this regex
      MMID_PATTERN=(d{7})

    4. To enable or disable transaction fee in Fund Transfer flow
      SHOW_TRANSACTION_FEE=no
      ->configure image urls, in case it needs to be shown in payee category selectionin one we can make payee category selection as carousel so that we can add image url for look and feel
      INTERNAL_DOMESTIC_IMAGE_URL=
      EXTERNAL_DOMESTIC_IMAGE_URL=
      SELF_IMAGE_URL=
      QUICK_PAY_IMAGE_URL=
      ->image URL's for Debitable accounts can be configured as described earlier in account enquiry

    5. Show Recent Transfer with Repeat and Edit

      -> By default it is supported with Repeat button
      ->for edit need to add button as per the requirementneed to create specific template for this
      ->no of transactions to be shown for user selection based on last transactions fetched from db, default value is 3 and this can be customised based on channel
      NO_OF_REPEAT_TRANSACTIONS_TO_BE_SHOWN=3
      -> recent transfers to be shown can be customised based on payee type as well as channel specific by default it is true for all cases
      Here if payee type is already chosen or may uttered this can be applied else default value will get triggered
      Default :- SHOW_RECENT_TRANSFER=yes
      Possible customisation example:-
      SHOW_RECENT_TRANSFER_{payeeType}=yes
      SHOW_RECENT_TRANSFER_SELF=no
      IS_RECENT_TRANSFER_SELECTION_OPTIONAL=yes
      Map Debit account details when transaction from repeat transfers is selected by default it is false
      txn-moneymovement_REPEAT_MAP_DEBIT_ACCOUNT=false
      What are the values user need to re-enter on repeat transfer
      *these values should be same as RB domain objects
      txn-moneymovement_RESET_EDIT_REPEAT_DIALOG_MODEL_PARAMS=amount
      This can be customised based on each use case level as we described how property will fetch from db hereneed to describe getPropertyValueForBot method in somewhere,
      Default value from method will be true but RB maintaining false for websdk and true for iot's
      TRANSFER_SHOW_REPEAT_AMOUNT_CONFIRMATION=false

    6. Show Frequent Payees

      No of frequent payees to be shown in the last transactions fetched from db
      NO_OF_FREQUENT_PAYEES_TO_BE_SHOWN=3
      Whether to show frequent payee list or not,this also can be customised based on payee type like
      SHOW_FREQUENT_PAYEES_{payeeType}=(default value will be "no")
      example:-
      SHOW_FREQUENT_PAYEES=no
      SHOW_FREQUENT_PAYEES_SELF=no
      SHOW_FREQUENT_PAYEES_CREDIT_CARD=no

    7. Show Transfer Types

    -> declare the payee types like EXTERNAL_DOMESTIC,CREDIT_CARD,MMID for which transfer types needed
    SHOW_TRANSFER_TYPES_FOR_SELECTION=EXTERNAL_DOMESTIC
    -> transfer type to be shown on demand
    This can be customised based on payeeType as shown in pattern like
    {payeeType}_SUPPORTED_TRANSFER_TYPES=RTGS
    Example:- EXTERNAL_DOMESTIC_SUPPORTED_TRANSFER_TYPES=RTGS,NEFT,IMPS,UPI for external domestic we are showing list but for others It will fall on SUPPORTED_TRANSFER_TYPES if we are not configured for other payee Types and it will show accordingly
    SUPPORTED_TRANSFER_TYPES=RTGS,NEFT
    -> if transfer types selection is not required then by default will be picked with below configured one
    DEFAULT_TRANSFER_TYPE=IMPS

    1. IFSC

    -> if there is an API provided to look up IFSC codes, set to true
    IS_IFSC_CODE_LOOKUP_SUPPORTED=true
    -> if set to true, this will invoke the route direct:retail.banking.get.ifsc.code.details to get the IFSC Code details, other wise IFSC code look up is not done
    IS_IFSC_CODE_VALIDATION_REQUIRED=true
    -> when user types, transfer to UTIB0SSCB02 (IFSCCODE), this will show the resolved IFSC code details, this will work if IS_IFSC_CODE_VALIDATION_REQUIRED is set to true
    SHOW_RESOLVED_IFSC_CODE_DETAILS=true
    -> if the ifsc code lookup is supported, show the ifsc codes for selection to the user
    SHOW_IFSC_CODES_FOR_SELECTION=true

    1. Remarks

    Remarks can be customised based on payee Type default value will be true
    *payeeType -> SELF,INTERNAL_DOMESTIC,etc,.
    TRANSFER_IS_REMARKS_REQUIRED_{payeeType}=yes
    example:-
    TRANSFER_IS_REMARKS_REQUIRED_INTERNAL_DOMESTIC=yes
    TRANSFER_IS_REMARKS_REQUIRED_QUICK_PAY=no
    config to show do you want to add remarks for this transaction, to skip this step and directly ask for remarks, set the below to no
    TRANSFER_IS_ADD_REMARKS_CONFIRMATION_REQUIRED=no

    1. Auto Pay

    Whether auto pay is supported or not
    IS_AUTO_PAY_ENABLEDneed to remove this as it is no where we used=true
    Supported payee types for autopay
    AUTO_PAY_SUPPORTED_FT=SELF,INTERNAL_DOMESTIC,EXTERNAL_DOMESTIC,MMID,UPI,QUICK_PAY

    1. One Time Transfer

      Generic

      ->To Enable one time transfer first we need to enable without adding payee transfer flows
      txn-moneymovement_SUPPORTED_PAYEE_TYPES=ADHOC_PAYEE
      ->then need to enable one time transfer as a part of adhoc
      transfer_SUPPORTED_ADHOC_PAYEE_CATEGORIES= ONE_TIME_TRANSFER
      txn-moneymovement_SUPPORTED_ADHOC_PAYEE_CATEGORIES= ONE_TIME_TRANSFER
      ->Supported Payee types for One time transfer
      --> possible values are like INTERNAL_DOMESTIC,EXTERNAL_DOMESTIC,ADHOC_CREDIT_CARD
      ONE_TIME_TRANSFER_SUPPORTED_PAYEE_TYPE = INTERNAL_DOMESTIC
      -> Set this as "yes" if API needs to fetch payee identification inputs for one time transfer
      IS_API_CALL_FOR_ONE_TIME_TRANSFER_INPUTS = yes
      -> provide route where we can do api call and get response to process (Response should be PayeeResponse)
      ONE_TIME_TRANSFER_INPUT_ROUTE_URI = direct:demobank.one.time.transfer.inputs.stub
      ONE_TIME_TRANSFER_PAYEE_VALIDATION_ROUTE_URI = direct:demobank.one.time.transfer.payee.validation.stub
      IS_ONE_TIME_TRANSFER_PAYEE_VALIDATION_REQUIRED = yes

    Customisation

    Integration Customisation

    Request:

    Request URL: http://one-api.active.ai/banking-integration/v1/\{customerId}/onetime-transfer/payee/validation

        customerId - String  
    

    Schema:

    {  
        "accessToken": "string",  
        "address": "string",  
        "amount": "string",  
        "customerId": "string",  
        "customerName": "string",  
        "emailId": "string",  
        "mobileNumber": "string",  
        "payeeAccountId": "string",  
        "payeeAccountNumber": "string",  
        "payeeBankId": "string",  
        "payeeBranchId": "string",  
        "payeeEmailId": "string",  
        "payeeIFSCCode": "string",  
        "payeeId": "string",  
        "payeeIdType": "ACCOUNT_NUMBER",  
        "payeeMobileNumber": {  
            "phoneCountryCode": "string",  
            "phoneNo": 0,  
            "phoneType": "PRIMARY"  
        },  
        "payeeName": "string",  
        "payeeType": "INTERNAL_DOMESTIC",  
        "purpose": "string",  
        "remarks": "string",  
        "sourceAccountId": "string",  
        "type": "string"  
    }  
    

    Response:

        Status : 200  
        Meaning: OK  
        Description: OK  
    

    Schema:

    {  
        "oneTimeTransferInputs": [  
            {  
                "payeeType": "INTERNAL_DOMESTIC",  
                "displayPayeeType": "Same Bank",  
                "userIdentityInputs": [],
                "name": "payeeName",  
                "regex": "[-s0-9][A-Za-z0-9  
                s]{1,120}$",  
                "message": "Payee Name",  
                "errorMessage": "Please enter name of length in between 1 to 120"  
            },  
            {  
            "name": "payeeAccountNumber",  
            "regex": "^[A-Z0-9]{12,20}$",  
            "message": "Account Number",  
            "errorMessage": "Please enter valid Payee Account Number in between (eg EPG11404082345)"  
            },  
            {  
                "name": "remarks",  
                "regex": "[-s][A-Za-z0-9s]{2,120}$",  
                "message": "Remarks",  
                "value": "internal transfer",  
                "errorMessage": "Please Provide Remarks of length in between 1 to 120"  
            }  
        ]
    }  
    

    The above json object is only supported currently on api response for payee identity input response
    payeeType -> we are supporting INTERNAL_DOMESTIC,EXTERNAL_DOMESTIC,ADHOC_CREDIT_CARD
    displayPayeeType -> display as a tab name
    name -> constant as given above value don't alter the values without noticing to product team
    regex -> pattern to be validated on value entered by user
    message -> label name which will shown on webview for each input
    value -> value to be entered by user if this contains value we are displaying that inside text box
    errorMessage -> on click of submit if any validation failed on respective regex we are showing this message

    Other Category

    Generic

    is payee name required for payee types chosen on flow
    {channelType}_{payeeType}_IS_PAYEE_NAME_INPUT_REQUIRED=default value is yes
    Example:- by default RB maintaining given below properties for iot's
    aa_QUICK_PAY_IS_PAYEE_NAME_INPUT_REQUIRED=no
    gh_QUICK_PAY_IS_PAYEE_NAME_INPUT_REQUIRED=no

    1. invoke a custom route when payee name mismatch
      {channelType}_TRANSFER_PAYEE_NAME_MISMTACH_URI=direct:retail.banking.transfer.payee.name.mismatch
      By default RB configured above value you can customise this one based on requirement if user asked payee is not available in supported payees
      But with respect to channels rb maintaining below routes in domainRulemstr or RB property file you can change below values if need to do any customisation
      aa_TRANSFER_PAYEE_NAME_MISMTACH_URI=direct:retail.banking.transfer.payee.name.mismatch.alexa
      gh_TRANSFER_PAYEE_NAME_MISMTACH_URI=direct:retail.banking.transfer.payee.name.mismatch.alexa
      W_TRANSFER_PAYEE_NAME_MISMTACH_URI=direct:retail.banking.transfer.payee.name.mismatch

      Enabling UPI ID

      *do template changes accordinglydefault we need to give templates
      *add camel routes accordinglyadding routes need to be documented
      txn-moneymovement_SUPPORTED_PAYEE_TYPES=ADHOC_PAYEE
      Add UPI to supported payee category
      txn-moneymovement_SUPPORTED_PAYEE_CATEGORIES=UPI
      Will validate whether entered vpa need to validate before proceeding the transaction
      VPA_VALIDATION_REQUIRED_FOR_PAYEES=yes

      Enabling MMID

      *do template changes accordingly
      *add camel routes accordingly
      txn-moneymovement_SUPPORTED_PAYEE_TYPES=ADHOC_PAYEE
      Add MMID to supported payee category
      txn-moneymovement_SUPPORTED_PAYEE_CATEGORIES=MMID

      Enabling Quick pay

      *do template changes accordingly
      *add camel routes accordingly
      txn-moneymovement_SUPPORTED_PAYEE_TYPES=ADHOC_PAYEE
      Add QUICK_PAY to supported payee category
      txn-moneymovement_SUPPORTED_PAYEE_CATEGORIES=QUICK_PAY

      Transaction Fee

      There are steps to achieve this
      Step 1:- Frame fee rule key for each supported payee types like INTERNAL_DOMESTIC,EXTERNAL_DOMESTIC etc,. Using message configuration like
      {payeeType}_FEE_RULE_KEY=FEE_RULE_KEY
      **FEE_RULE_KEY can be dynamic, means this can be customisable based on the available data like payeeType(INTERNAL_DOMESTIC,EXTERNAL_DOMESTIC,etc,.),transferType(IMPS,RTGS,etc,.),etc,.
      Step 2:- Based on obtained FEE_RULE_KEY we can specify number of rules for specifying range
      FEE_RULE_KEY=range1,range2
      Step 3:- Now define each range as shown below
      range1=startAmount1-endAmount1
      range2=endAmount1-endAmount2
      Step 4:- Now set fee for individual range as described above
      range1_FEE={fee for range1 need to be specified here}
      range2_FEE={fee for range2 need to be specified here}

      Example:-
      FT_TRANSACTION_FEE_RULES=FT_INTER_TRANSACTION_RANGE_1,FT_INTER_TRANSACTION_RANGE_2
      FT_INTER_TRANSACTION_RANGE_1=1000-100000
      FT_INTER_TRANSACTION_RANGE_2=100000-200000
      FT_INTER_TRANSACTION_RANGE_1_FEE=5
      FT_INTER_TRANSACTION_RANGE_2_FEE=15
      EXTERNAL_DOMESTIC_RTGS_FEE_RULES=FT_RTGS_RANGE_1,FT_RTGS_RANGE_2
      FT_RTGS_RANGE_1=200000-500000
      FT_RTGS_RANGE_2=500000-1000000
      FT_RTGS_RANGE_1_FEE=25
      FT_RTGS_RANGE_2_FEE=50
      EXTERNAL_DOMESTIC_NEFT_FEE_RULES=FT_NEFT_RANGE_1,FT_NEFT_RANGE_2
      FT_NEFT_RANGE_1=1-10000
      FT_NEFT_RANGE_2=10000-100000
      FT_NEFT_RANGE_1_FEE=2.50
      FT_NEFT_RANGE_2_FEE=5
      EXTERNAL_DOMESTIC_IMPS_FEE_RULES=FT_IMPS_RANGE_1
      FT_IMPS_RANGE_1=1-100000
      FT_IMPS_RANGE_2=10000-100000
      FT_IMPS_RANGE_1_FEE=5

      Transaction Error

      Prefix to fetch error code as described below
      txn-moneymovement_TRANSACTION_TYPE_HANDLE_ERROR=TRANSFER

    2. continue transaction error codes for transfer
      TRANSFER_ERROR_CODES_CONTINUE_TRANSACTION=1001,1002,1003,1004,INSUFFICIENT_BALANCE,INSUFFICIENT_BALANCE_SINGLE_ACCOUNT,ZERO_BALANCE,NO_PAYEES_FOR_DEBIT_ACCOUNT
      clear the value in requestEntity, dialogModel, context which describes in below properties based on error code(REQUEST_ENTITY_ATTRIBUTE_NAME,DIALOGMODEL_ATTRIBUTE_NAME,CONTEXT_KEYS)
      {errorCode}_{prefixChosenFromDomainRuleMstr}_REQUEST_ENTITY_ATTRIBUTE_NAME={requestEntitiesToBeCleared}
      {errorCode}_{prefixChosenFromDomainRuleMstr}_DIALOGMODEL_ATTRIBUTE_NAME={dialogModelAttributeToBeCleared}
      {errorCode}_{prefixChosenFromDomainRuleMstr}_CONTEXT_KEYS={ContextValueToBeCleared}
      {errorCode}_{prefixChosenFromDomainRuleMstr}_EXPECTED_ENTITY_KEY={Expected entities key}
      {errorCode}_{prefixChosenFromDomainRuleMstr}_REPONSE_TYPE={type of response to be shown on error}
      {errorCode}_{prefixChosenFromDomainRuleMstr}_FOLLOWUP_RESPONSES={Follow up response i f any currently supporting SHOW_PAYEES,SHOW_ACCOUNTS}
      *By default RB handled 7 kinds of transaction errors either you can customise the following or you may add more
      Example :- 1
      1001_TRANSFER_REQUEST_ENTITY_ATTRIBUTE_NAME=amount
      1001_TRANSFER_DIALOGMODEL_ATTRIBUTE_NAME=amount
      1001_TRANSFER_EXPECTED_ENTITY_KEY=AMOUNT
      1001_TRANSFER_REPONSE_TYPE=TEMPLATE
      1002_TRANSFER_REPONSE_TYPE=TEMPLATE
      Example :- 2
      1003_TRANSFER_REQUEST_ENTITY_ATTRIBUTE_NAME=payeeName,payeeAccountNumber
      1003_TRANSFER_DIALOGMODEL_ATTRIBUTE_NAME=payeeName,payeeId,payeeAccountNumber,payeeNickName,payeeAccountId,payeeAccountCategory,payeeProductType
      1003_TRANSFER_CONTEXT_KEYS=banking.payee-name,banking.payeeId
      1003_TRANSFER_EXPECTED_ENTITY_KEY=PAYEE_NAME
      1003_TRANSFER_REPONSE_TYPE=TEMPLATE
      1003_TRANSFER_FOLLOWUP_RESPONSES=SHOW_PAYEES
      Example :- 2
      1004_TRANSFER_REQUEST_ENTITY_ATTRIBUTE_NAME=accountNumber,accountType,productType,productNames,accountId
      1004_TRANSFER_DIALOGMODEL_ATTRIBUTE_NAME=accounts
      1004_TRANSFER_CONTEXT_KEYS=productTypes,accountNumbers,productNames,accountTypes,accountId,accountIds
      1004_TRANSFER_EXPECTED_ENTITY_KEY=DEBIT_ACCOUNT
      1004_TRANSFER_REPONSE_TYPE=TEMPLATE
      1004_TRANSFER_FOLLOWUP_RESPONSES=SHOW_ACCOUNTS
      Example :- 4
      INSUFFICIENT_BALANCE_SINGLE_ACCOUNT_TRANSFER_REQUEST_ENTITY_ATTRIBUTE_NAME=amount
      INSUFFICIENT_BALANCE_SINGLE_ACCOUNT_TRANSFER_DIALOGMODEL_ATTRIBUTE_NAME=amount
      INSUFFICIENT_BALANCE_SINGLE_ACCOUNT_TRANSFER_EXPECTED_ENTITY_KEY=AMOUNT
      INSUFFICIENT_BALANCE_SINGLE_ACCOUNT_TRANSFER_REPONSE_TYPE=TEXT
      Example:- 5
      INSUFFICIENT_BALANCE_TRANSFER_REQUEST_ENTITY_ATTRIBUTE_NAME=accountNumber,accountType,productType,productNames,accountId
      INSUFFICIENT_BALANCE_TRANSFER_DIALOGMODEL_ATTRIBUTE_NAME=accounts
      INSUFFICIENT_BALANCE_TRANSFER_CONTEXT_KEYS=productTypes,accountNumbers,productNames,accountTypes,accountId,accountIds
      INSUFFICIENT_BALANCE_TRANSFER_EXPECTED_ENTITY_KEY=DEBIT_ACCOUNT
      INSUFFICIENT_BALANCE_TRANSFER_REPONSE_TYPE=TEMPLATE
      INSUFFICIENT_BALANCE_TRANSFER_FOLLOWUP_RESPONSES=SHOW_ACCOUNTS
      Example:- 6
      ZERO_BALANCE_TRANSFER_REQUEST_ENTITY_ATTRIBUTE_NAME=accountNumber,accountType,productType,productNames,accountId
      ZERO_BALANCE_TRANSFER_DIALOGMODEL_ATTRIBUTE_NAME=accounts
      ZERO_BALANCE_TRANSFER_CONTEXT_KEYS=productTypes,accountNumbers,productNames,accountTypes,accountId,accountIds
      ZERO_BALANCE_TRANSFER_EXPECTED_ENTITY_KEY=DEBIT_ACCOUNT
      ZERO_BALANCE_TRANSFER_REPONSE_TYPE=TEMPLATE
      ZERO_BALANCE_TRANSFER_FOLLOWUP_RESPONSES=SHOW_ACCOUNTS
      Example:- 7
      NO_PAYEES_FOR_DEBIT_ACCOUNT_TRANSFER_REQUEST_ENTITY_ATTRIBUTE_NAME=accountNumber,accountType,productType,productNames,accountId
      NO_PAYEES_FOR_DEBIT_ACCOUNT_TRANSFER_DIALOGMODEL_ATTRIBUTE_NAME=accounts
      NO_PAYEES_FOR_DEBIT_ACCOUNT_TRANSFER_CONTEXT_KEYS=productTypes,accountNumbers,productNames,accountTypes,accountId,accountIds
      NO_PAYEES_FOR_DEBIT_ACCOUNT_TRANSFER_EXPECTED_ENTITY_KEY=DEBIT_ACCOUNT
      NO_PAYEES_FOR_DEBIT_ACCOUNT_TRANSFER_REPONSE_TYPE=TEMPLATE
      NO_PAYEES_FOR_DEBIT_ACCOUNT_TRANSFER_FOLLOWUP_RESPONSES=SHOW_ACCOUNTS

      Transaction Status(Final Api call)

    3. if the confirm API is two steps, like first preprocess and then call confirm by default RB set this as false
      IS_FUNDSTRANSFER_TWO_STEPS=false
      If the IS_FUNDSTRANSFER_TWO_STEPS value is false then will get only STEP2 and format is explained as below
      {payeeType}_{transferType :- NA}_TRANSFER_STEP2_ROUTE_URI=URI where final confirmation integration needs to be happen
      Else will get both STEP1 And STEP2 api calls
      {payeeType}_{transferType :- NA}_TRANSFER_STEP1_ROUTE_URI=URI where pre-process integration needs to be happen
      {payeeType}_{transferType :- NA}_TRANSFER_STEP2_ROUTE_URI=URI where final confirmation integration needs to be happen

      Examples:-

    4. the below should in sync with the invoke funstransfer api route
      linked direct:retail.banking.transaction.confirm.step1
      linked direct:retail.banking.transaction.confirm.step2
      INTERNAL_DOMESTIC_NEFT_TRANSFER_STEP1_ROUTE_URI=direct:axis.invoke.fund.transfer.preprocess.stub
      INTERNAL_DOMESTIC_NEFT_TRANSFER_STEP2_ROUTE_URI=direct:rb.demobank.stub.transfer.confirm.api
      INTERNAL_DOMESTIC_RTGS_TRANSFER_STEP1_ROUTE_URI=direct:axis.invoke.fund.transfer.preprocess.stub
      INTERNAL_DOMESTIC_RTGS_TRANSFER_STEP2_ROUTE_URI=direct:rb.demobank.stub.transfer.confirm.api
      INTERNAL_DOMESTIC_IFT_TRANSFER_STEP1_ROUTE_URI=direct:axis.invoke.fund.transfer.preprocess.stub
      INTERNAL_DOMESTIC_IFT_TRANSFER_STEP2_ROUTE_URI=direct:rb.demobank.stub.transfer.confirm.api
      EXTERNAL_DOMESTIC_NEFT_TRANSFER_STEP1_ROUTE_URI=direct:axis.invoke.fund.transfer.preprocess.stub
      EXTERNAL_DOMESTIC_NEFT_TRANSFER_STEP2_ROUTE_URI=direct:rb.demobank.stub.transfer.confirm.api
      EXTERNAL_DOMESTIC_RTGS_TRANSFER_STEP1_ROUTE_URI=direct:axis.invoke.fund.transfer.preprocess.stub
      EXTERNAL_DOMESTIC_RTGS_TRANSFER_STEP2_ROUTE_URI=direct:rb.demobank.stub.transfer.confirm.api
      EXTERNAL_DOMESTIC_IMPS_TRANSFER_STEP1_ROUTE_URI=direct:axis.invoke.fund.transfer.preprocess.stub
      EXTERNAL_DOMESTIC_IMPS_TRANSFER_STEP2_ROUTE_URI=direct:rb.demobank.stub.transfer.confirm.api
      EXTERNAL_DOMESTIC_NA_TRANSFER_STEP2_ROUTE_URI=direct:rb.demobank.stub.transfer.confirm.api

      EXTERNAL_DOMESTIC_UPI_TRANSFER_STEP2_ROUTE_URI=direct:rb.demobank.stub.transfer.confirm.api
      CREDIT_CARD_VMT_TRANSFER_STEP2_ROUTE_URI=direct:rb.demobank.stub.transfer.confirm.api
      SELF_IFT_TRANSFER_STEP1_ROUTE_URI=direct:rb.demobank.stub.transfer.confirm.api
      SELF_IFT_TRANSFER_STEP2_ROUTE_URI=direct:rb.demobank.stub.transfer.confirm.api
      QUICK_PAY_IMPS_TRANSFER_STEP1_ROUTE_URI=direct:rb.demobank.stub.transfer.preprocess
      QUICK_PAY_IMPS_TRANSFER_STEP2_ROUTE_URI=direct:rb.demobank.stub.transfer.confirm.api
      MMID_IMPS_TRANSFER_STEP1_ROUTE_URI=direct:rb.demobank.stub.transfer.preprocess
      MMID_IMPS_TRANSFER_STEP2_ROUTE_URI=direct:rb.demobank.stub.transfer.confirm.api
      MMID_UPI_TRANSFER_STEP2_ROUTE_URI=direct:rb.demobank.stub.transfer.confirm.api
      UPI_IMPS_TRANSFER_STEP1_ROUTE_URI=direct:rb.demobank.stub.transfer.preprocess
      UPI_IMPS_TRANSFER_STEP2_ROUTE_URI=direct:rb.demobank.stub.transfer.confirm.api

      Other

      configure the below if any validations required for transfer (like validate fromAccount and toAccount, isFeeRequired), if this is configured, route URI will be invoked, otherwise no
      this validation happens before confirmation step
      INTERNAL_DOMESTIC_VALIDATION_ROUTE_URI_KEY=
      EXTERNAL_DOMESTIC_VALIDATION_ROUTE_URI_KEY=
      SELF_VALIDATION_ROUTE_URI_KEY=direct:demobank.stub.validate.self.transfer
      QUICK_PAY_VALIDATION_ROUTE_URI_KEY=
      MMID_VALIDATION_ROUTE_URI_KEY=
      UPI_VALIDATION_ROUTE_URI_KEY=

    Generic Filter

    We have implemented a generic filter in retailBanking which can be used for creating basic steps which involves

    Usage:
    (primarily used in the base routes)

    params: dialogRequest,name of the entity, payload to sent if the response is a template
    Configurations to be added in retail-banking.properties: this lists all the customEntities used, these are the names of entities such as referenceId/recipientId, should be unique
    CUSTOM_ENTITIES_IDENTIFIERS=referenceId,recipientId
    defines what type of entity referenceId is, Ex- any.freetext,sys.amount etc
    referenceId_ENTITY_TYPE=any.freetext
    defines what is the response type of referenceId when asked to the user, possible values - TEMPLATE/TEXT/PAYLOAD
    referenceId_RESPONSE_TYPE=TEMPLATE/TEXT/PAYLOAD
    if the response is a text, then this property defines the messageId which needs to be added in botmessagemstr
    referenceId_MESSAGE=RecipientReference
    if the response is a template, then this property defines the templateId which needs to be added in templatemstr
    referenceId_TEMPLATE_ID=RecipientReference
    validation type of the entity, possible values - static/dynamic
    referenceId_VALIDATION_TYPE=static
    if static validation, the regex to be entered
    referenceId_static_VALIDATION=^[a-zA-Z0-9]*$
    if the static validation of entity fails, the error message to be shown to the user
    referenceId_static_VALIDATION_MESSAGE_ID=INVALID_ENTITY_referenceId
    if validation is dynamic, need to mention the validation uri to be implemented
    referenceId_dynamic_VALIDATION=direct:retail.banking.validate.referenceId
    Note: if we don't need any validations for the entity, then we can ignore the validation specific properties
    Few points to note:
    if the referenceId_RESPONSE_TYPE=TEMPLATE, then the payload to the template configured can be sent as a body in the genericFilter
    Ex:-


    getGenericPayload method mentioned in the genericFilter can be called and values can be passed to it, which will write it as payloadmap string to be used in the template.
    the value will be available in message and can be used as message inside the template.

    Integration can be done in so many ways

    1. Microservices provided by RB(Banking-Integration)
      • Here only default flows can be integrated
      • Explanation for basic details were given heremicroservice doc
    2. Using camel routes of RB itself

      • Here need to understand Request and response of each RB domain objects

      Using camel routes of RB itself

      As described in the above configurations need to create specific routes from the RB exposed routes, will suggest don't change any base routes without any notice to product team

    * Keep RB base properties separate and what you need to override those were separate file,which in turn helps to upgrade version quickly * Even don't change all resources provided from rb keep your separate resource management package, later you can import your override resource on top of base. * Below is the list of RB properties needs to be altered to point it to your own integration camel- Fund Transfer Status Route

    FUND_TRANSFER_CONFIRM_URI=direct:rb.demobank.stub.transfer.confirm.api
    Route to fetch Payees
    PAYEE_ROUTE_URI=direct:demobank.stub.payees Route to fetch One time transfer payee details inputs
    ONE_TIME_TRANSFER_INPUT_ROUTE_URI=direct:demobank.one.time.transfer.inputs.stub Validation Route for one time transfer payee details inputs
    ONE_TIME_TRANSFER_PAYEE_VALIDATION_ROUTE_URI= direct:demobank.one.time.transfer.payee.validation.stub

    #### Final API

    Request Object:- Figure 1.1 describes class diagram for FundTransferRequest Object of RB with fields and dependencies where Payee (Fig 1.5) , AccountDetailsBase account requestObject were explained earlier,also we have getters and setters for all fields available in the below diagram
    Response Object:- Figure 1.2 describes class diagram for FundTransferResponse Object of RB With fields and dependencies,also we have getters and setters for all fields available in the below diagram

    #### Payee API

    Request Object:- Figure 1.3 describes class diagram for FundTransferRequest Object of RB with fields and dependencies where Payee (Fig 1.5)
    Response Object:- Figure 1.4 describes class diagram for FundTransferResponse Object of RB With fields and dependencies where Payee (Fig 1.5)

    FundTransferRequest Fig 1.1 FundTransferRequest

    FundTransferResponse Fig 1.2 FundTransferResponse

    PayeeRequest Fig 1.3 PayeeRequest

    PayeeResponse Fig 1.4 PayeeResponse

    Payee Fig 1.5 Payee

    #### Payee Validation Request

    This api is called on one time transfer flow after clicking submit on webpage where payee identity inputs were filled by user
    Request Object:- Figure 1.6 describes class diagram for FundTransferRequest Object of RB with fields and dependencies where Payee (Fig 1.5)
    Response Object:- Figure 1.7 describes class diagram for FundTransferResponse Object of RB With fields and dependencies where Payee (Fig 1.5)

    PayeeValidationRequest Fig 1.6 PayeeValidationRequest

    PayeeValidationResponse Fig 1.7 PayeeValidationResponse

    Microservices provided by RB(Banking-Integration)

    Final API

    Request:

    Request URL: http://one-api.active.ai/banking-integration/v1/{customerId}/transfer/confirm

    customerId - String  
    

    schema:

    {  
        "accessToken": "string",  
        "address": "string",  
        "amount": "string",  
        "customerId": "string",  
        "customerName": "string",  
        "emailId": "string",  
        "mobileNumber": "string",  
        "payeeAccountId": "string",  
        "payeeAccountNumber": "string",  
        "payeeBankId": "string",  
        "payeeBranchId": "string",  
        "payeeEmailId": "string",  
        "payeeIFSCCode": "string",  
        "payeeId": "string",  
        "payeeMobileNumber": {  
            "phoneCountryCode": "string",  
            "phoneNo": 0,  
            "phoneType": "PRIMARY"  
        },  
        "payeeName": "string",  
        "payeeType": "INTERNAL\DOMESTIC",  
        "purpose": "string",  
        "remarks": "string",  
        "sourceAccountId": "string",  
        "type": "string"  
    }
    
    Response:
    {  
        "chargeTransactionFee": true,  
        "result": {  
            "status": 0,  
            "message": "String",  
            "messageCode": "String"  
        },  
        "txnReferenceId": "String",  
        "transactionStatus": "SUCCESS",  
        "transactionFee": 0,  
        "transferAmount": 0,  
        "isChargeTransactionFee": 0  
    }  
    

    Payee API:

    Request:

    Request URL: http://one-api.active.ai/banking-integration/v1/\{customerId}/transfer/payee

    customerId - String 
    

    schema:

    {  
        "accessToken": "string",  
        "accountIds": [  
        "string"  
        ],  
        "address": "string",  
        "customerId": "string",  
        "customerName": "string",  
        "emailId": "string",  
        "mobileNumber": "string",  
        "payee": {  
            "currency": "string",  
            "payeeAccountId": "string",  
            "payeeAccountNo": "string",  
            "payeeBank": "string",  
            "payeeBankBranch": "string",  
            "payeeBankIFSC": "string",  
            "payeeBankSWIFT": "string",  
            "payeeId": "string",  
            "payeeMaskedAccountNo": "string",  
            "payeeName": "string",  
            "payeeNickName": "string",  
            "payeeType": "INTERNAL_DOMESTIC",  
            "status": "ACTIVE"  
        }  
    }
    
    Response:
    {  
        "result": {  
            "status": 0,  
            "message": "String",  
            "messageCode": "String"  
        },  
        "Payees": []  
    }  
    

    Payee Validation Request

    Request:

    Request URL: http://one-api.active.ai/banking-integration/v1/\{customerId}/onetime-transfer/payee/validation

    customerId - String 
    

    Schema:

    {  
        "accessToken": "string",  
        "address": "string",  
        "amount": "string",  
        "customerId": "string",  
        "customerName": "string",  
        "emailId": "string",  
        "mobileNumber": "string",  
        "payeeAccountId": "string",  
        "payeeAccountNumber": "string",  
        "payeeBankId": "string",  
        "payeeBranchId": "string",  
        "payeeEmailId": "string",  
        "payeeIFSCCode": "string",  
        "payeeId": "string",  
        "payeeIdType": "ACCOUNT_NUMBER",  
        "payeeMobileNumber": {  
            "phoneCountryCode": "string",  
            "phoneNo": 0,  
            "phoneType": "PRIMARY"  
        },  
        "payeeName": "string",  
        "payeeType": "INTERNAL_DOMESTIC",  
        "purpose": "string",  
        "remarks": "string",  
        "sourceAccountId": "string",  
        "type": "string"  
    }  
    
    Response:
    {  
    "result": {  
    "status": 0,  
    "message": "String",  
    "messageCode": "String"  
    },  
    "referenceId": "String",  
    "validPayee": true,  
    "transactionStatus": "SUCCESS"  
    }  
    

    Response Customisation

    Messages

    Kindly refer messages for this use case on admin by selecting respective category (Like Fund Transfer,Transaction Common) as shown here

    Templates

    Kindly refer Templates for this use case on admin by selecting a category (like Fund Transfer, Transaction Common) as shown hereneed to add templates
    Shows All accounts
    transfer_ALL_ACCOUNTS_TEMPLATE_ID=FundsTransferAccounts
    Shows single account on mismatch and normal as well
    transfer_SINGLE_ACCOUNT_TEMPLATE_ID=FundsTransferAccounts
    Shows all account on mismatch
    transfer_ACCT_SELECT_TEMPLATE_ID=FundsTransferAccountMismatch
    Shows all account on mismatch with show more
    transfer_ACCT_SELECT_WITH_SHOW_MORE_TEMPLATE_ID=FundsTransferAccountMismatch
    Shows Recent transfer
    RecentTransfers_TEMPLATE_ID=RecentTransfer_WithNewTransfer
    Success Template
    FT_SUCCESS_HTML_TEMPLATE_NAME=fundTransferSuccessHtml
    Shows all accounts with show more
    transfer_ACCOUNTS_WITH_SHOW_MORE_TEMPLATE_ID=FundsTransferAccountsWithSomeMore
    Faillure template
    FT_FAILURE_TEMPLATE_ID=FTFailed
    Success Template
    FT_SUCCESS_TEMPLATE_ID=FTSuccess
    Error template on 1001 code
    1001_TRANSFER_TEMPLATE_NAME=TransferError
    Quick replay for remarks with skip button
    GENERIC_CONFIRMATION_TEMPLATE_NAME_FOR_QUICK_REPLIES=TransactionRemarksQuickReply
    Shows all accounts after clicking on the show more
    transfer_ACCOUNTS_SHOW_MORE_REQ_TEMPLATE_ID=FundsTransferAccountsWithSomeMore
    Show all payee list
    transfer_PAYEE_TEMPLATE_ID=FundTransferPayeeList
    Shows all payee list with show more
    transfer_PAYEE_SHOWMORE_TEMPLATE_ID=FundTransferShowMorePayeeList
    Amount selection on credit card payment
    transfer_AMOUNT_CC_TEMPLATE_ID=CCAmountSelection
    Amount selection on credit card payment for alexa
    transfer_AMOUNT_CC_TEMPLATE_ID_ALEXA=CCAmountSelectionAlexa
    Account confirmation on context
    transfer_AcctConfirm=ConfirmAccountTransfer
    Single accounts selected message
    transfer_SingleAccountMsg=TransferSingleAccountMsg

    Hooks or Fulfilments

    Kindly refer Hooks or Fulfilments for name(fund_transfer) use case on admin as guided on here

    Customization of Image Properties:-

    To customise images. Kindly refere here

    Liquidate Deposit


    Overview

    Use case name Liquidate term deposit
    Type Service request
    Intent txn-productclosure
    Entities
    • product type
    • product name
    • repayment account
    • deposit amount
    • total credit amount
    Banking products supported Deposits
    Channels supported Web, Mobile, FB messenger, Alexa
    Login Yes
    2FA Yes
    API availability Yes
    Integrations done NA
    Stub data availability Yes

    Features

    Summary

    1. User can liquidate a fixed deposit and credit one of their account with the proceeds.

    Detailed

    1. User can request to close their term deposit.

    2. Post deposit selection, system will ask to choose account to be credited if more than 1 eligible account exists

    3. System will provide template for user confirmation, in terms of total amount to be credited and the fees if any

    4. Upon confirmation, system will liquidate the deposit and credit the account and provide reference number for the same

    Flow CX

    Different flows for Liquidate Fixed Deposit

    Default Flow:- List of Account -> Select Account for crediting amount -> Submission -> Remarks -> Enter OTP -> Status of Liquidate Fixed Deposit

    Note: This can be flowchart / GIF or screenshot to represent OOTB flow

    line

    Facebook Flow -

    close_fd_login close_fd_login_page close_fd_account_list close_fd_credit_account_list close_fd_submit close_fd_remarks close_fd_otp close_fd_success

    Sample Utterance

    Sample utterances that work as per the flow:-

    Flow Chart

    Close_Fd_Flow

    Configuration

    Generic Configuration

    Customisation

    Integration Customisation

    Pre-Requirement

    To fetch the API of Accounts list, refer to the Balance Inquiry Documentation

    API for Liquidate Fixed Deposit Status

    Request

    Request URL:- http://one-api.active.ai/banking-integration/v1/{customerId}/deposit/confirm

        customerId - String
    

    Schema 

    {
      "FDAccountId": "string",
      "accessToken": "string",
      "address": "string",
      "creditableAccounts": {
        "accountId": "string",
        "accountName": "string",
        "accountNumber": "string",
        "accountType": "SAVINGS",
        "balance": {
          "amount": 0,
          "availableBalance": 0,
          "currencyCode": "string",
          "currentBalance": 0,
          "monthlyAverageBalance": 0
        },
        "bankName": "string",
        "branchAddress": "string",
        "branchId": "string",
        "branchName": "string",
        "displayAccountNumber": "string",
        "ifscCode": "string",
        "lastStatementBalance": 0,
        "lastStatementDate": "string",
        "leavesCount": "string",
        "openingDate": "string",
        "product": "Fixed Deposit",
        "productCode": "string",
        "referenceId": "string",
        "status": "NEW_ACCOUNT",
        "transactionStatus": "SUCCESS"
      },
      "customerId": "string",
      "customerName": "string",
      "debitableAccounts": {
        "accountId": "string",
        "accountName": "string",
        "accountNumber": "string",
        "accountType": "SAVINGS",
        "balance": {
          "amount": 0,
          "availableBalance": 0,
          "currencyCode": "string",
          "currentBalance": 0,
          "monthlyAverageBalance": 0
        },
        "bankName": "string",
        "branchAddress": "string",
        "branchId": "string",
        "branchName": "string",
        "displayAccountNumber": "string",
        "ifscCode": "string",
        "lastStatementBalance": 0,
        "lastStatementDate": "string",
        "leavesCount": "string",
        "openingDate": "string",
        "product": "Fixed Deposit",
        "productCode": "string",
        "referenceId": "string",
        "status": "NEW_ACCOUNT",
        "transactionStatus": "SUCCESS"
      },
      "depositPlans": [
        {
          "amount": 0,
          "interestRate": "string",
          "maturityAmount": 0,
          "minAmount": 0,
          "tenure": {
            "days": "string",
            "months": "string",
            "tenureFormatted": "string",
            "years": "string"
          }
        }
      ],
      "emailId": "string",
      "fdaccountId": "string",
      "interestPayableFrequency": [
        "string"
      ],
      "jointAccount": true,
      "maturityInstruction": [
        "string"
      ],
      "mobileNumber": "string",
      "nominee": {
        "guardian": "string",
        "minor": true,
        "nomineeAddress": "string",
        "nomineeName": "string",
        "nomineeRelationship": "string"
      },
      "remarks": "string"
    }
    

    Response

    Schema

    {
      "FDAccountId": "string",
      "depositPlans": [
        {
          "amount": 0,
          "interestRate": "string",
          "maturityAmount": 0,
          "minAmount": 0,
          "tenure": {
            "days": "string",
            "months": "string",
            "tenureFormatted": "string",
            "years": "string"
          }
        }
      ],
      "fdaccountId": "string",
      "interestPayableFrequency": [
        "string"
      ],
      "maturityInstruction": [
        "string"
      ],
      "nominee": {
        "guardian": "string",
        "minor": true,
        "nomineeAddress": "string",
        "nomineeName": "string",
        "nomineeRelationship": "string"
      },
      "referenceId": "string",
      "result": {
        "message": "string",
        "messageCode": "string",
        "status": 0
      },
      "status": "SUCCESS"
    }
    

    Following are the types to customize the integration for the Deposit Account:-**

    Pre requirement

    Required Accounts APIs should have been already be integrated accordingly.

    Service API to integrate with Bank API

    Package Class Name Method Name Details
    services DepositService getDepositPlanFinalResponseResponseEntity() You can call your API inside this method.
    domain-->request DepositServiceRequest Request Class
    domain-->response DepositServiceResponse Response Class
    mapper-->response DepositPlanResponseMapper Map API response to this mapper class.
    model DepositAccount,DepositPlan Fields, Getter/Setter methods

    Writing custom service and invoking in the camel route

    You can directly call your API from the integration camel by following the below steps.
    Properties Required to update CLOSE_FIXED_DEPOSIT_FINAL_API_ROUTE_URI =direct:close.deposits.final.response.stub.creator
    Go to that route id.
    Check for the API URL and change it by your API URL and map the response accordingly.

    Class Diagram

    For Deposit Service Request and Deposit Service Response, check here.

    Integrating with webhook

    You can directly call your API using a workflow webhook and customize your response refer here.

    Response Customisation

    Messages

    Kindly refer messages for this use case on admin by selecting respective category (Liquidate Deposit)

    Templates

    Kindly refer Templates for this use case on admin by selecting a category (Liquidate Deposit) Following are the Template Properties

    Hooks or Fulfilments

    Kindly refer Hooks or Fulfilments for name(Liquidate Deposit, Deposit Service Common)use case on admin as guided on here

    Customisation of Image Properties:-

    To customise images. Kindly refere here

    Login


    Overview

    Use case name Login
    Type Transaction (Authentication)
    Intent txn-login
    Entities
    • User ID
    • Password
    • 2FA
    Banking products supported NA
    Channels supported Web, Mobile, FB messenger, Alexa
    Login Yes
    2FA Yes
    Integrated API availability Yes
    Integrations done NA
    Stub data availability Yes

    Features

    Summary

    1. User can request to enter logged in session to perform transactions and log service requests or inquiries.

    2. User can authenticate themselves by providing their credentials including USER ID, Password.

      1. Based on bank support 2FA (OTP) can be enabled.
    3. Login would also be prompted if user attempts inquiry , service request or transaction in non-logged in session.

    Configurations

    Generic Configurations

    The default login policy is set for Login Modes 1-5. Morfeus Admin > Configure Workspace > Rules > Security > Login Policy (DEFAULT) The default login policy needs to be changed to OAUTH for login to work with OAuth config. Login to Morfeus Admin > Configure Workspace > Rules > Security > Login Policy Change the value to: OAuth

    Login Modes

    1. Internet Banking Credentials
    2. Credit Card login
    3. Debit Card login
    4. Mobile Banking PIN
    5. Mobile Banking Pattern
    6. OAuth

    Internet Banking Credentials (Using Username and Password) (Default)

    Web Template with

    On submit, the password is encrypted and sent to validate with bank APIs to authenticate and login users to use post-login functionality.

    Credit Card login

    Webview template with

    The encrypted values are sent to the backend to validate with bank APIs.

    Debit Card login

    Webview template with

    The encrypted values are sent to the backend to validate with bank APIs.

    Mobile Banking PIN

    Webview template with

    The encrypted values are sent to the backend to validate with bank APIs.

    Mobile Banking Pattern

    Webview template with

    The encrypted values are sent to the backend to validate with bank APIs.

    OAuth

    Can check out the code and customize the OAUTH application from the URL given here

    Login -> give credentials -> Complete On Boarding procedure as per oauth > success Template *You'll get more information on OAuth hereneed to provide oauth doc link While using the login modes from 1-5, the following code can be used to integrate with.

    Customization

    Integration customization

    1. Check out the code here for quick and easy integration. Integrate with the Bank Login API using the given code, deploy and start working.

    Request: POST

    Request URL: http://one-api.active.ai/banking-integration/v1/login

    Request Body:

    { 
       "accessToken": "string", 
       "password": "string", 
       "userID": "string" 
    } 
    

    Response:

    Status : 200 Meaning: OK Description: OK

    Schema :

    { 
       "result": { 
           "status": 200, 
           "message": "String", 
           "messageCode": "String" 
       }, 
       "user": { 
           "customerId": "String", 
           "customerName": "String", 
           "mobileNumber": "String", 
           "emailId": "String", 
           "address": "String", 
           "accessToken": "String" 
       }, 
       "customerSegments": ["String","String"]
    } 
    
    1. The following are the Login Request-Response objects using which one can integrate with the product with its own integration coding. By pointing the following RB property value to integration camel route id.

    LOGIN_ROUTE_URI=direct:demobank.stub.login (Default value) Worddav528de4b9a852f443b8032fa58b28f80e

    Response Customization

    Messages

    Kindly refer messages for this use case on admin by selecting respective category ( like Login) as shown here

    Templates

    Hooks or Fulfilments

    Kindly refer Hooks or Fulfilments for name(Login, RB-login-success-template, RB-post-login) use case on admin as guided on here

    Customisation of Image Properties:-

    To customise images. Kindly refere here

    Open Deposit


    Overview

    Use case name Open a fixed deposit
    Type Service request
    Intent txn-productapply
    Entities
    • product type
    • product name
    • funding account
    • deposit amount
    • deposit tenor
    • deposit currency
    Banking products supported Cards
    Channels supported Web, Mobile, FB messenger, Alexa
    Login Yes
    2FA Yes
    API availability Yes
    Integrations done NA
    Stub data availability Yes

    Features

    Summary

    1. User can invest in a fixed deposit.

    2. User can specify details for which deposit should be booked.

    3. Deposit will be booked online (subject to API availability).

    Detailed

    1. User will be able to book a deposit by saying something like ‘Open a deposit for 50k dollars’

    2. System will prompt funding account selection step, if more than one account exists for the user.

    3. Once user specified the account, the amount to be invested in deposit will be sought, if not provided initially

    4. At this stage, user will be shown relevant deposit plans in terms of the suggested deposit tenors and corresponding interest rates (or APY if configured).

    5. User can select or input tenor and proceed to confirmation step.

    6. Post confirmation of the initial details, system will prompt nominee details input as per configuration. User can choose from

    1. Subsequently, user can proceed to accept the ‘terms & conditions’ (configurable) to proceed with booking the deposit.

    2. A 2FA step like OTP(default) can be configured at this point.

    3. Based on API availability, the user will be provided

    Flow CX

    Default Flow:- List of Account ->Enter Amount -> Select Deposit Plan -> Proceed -> Nominee Step->Terms & Conditions ->OTP Step -> Status of Opening Fixed Deposit

    Note: This can be flowchart / GIF or screenshot to represent OOTB flow

    line

    Facebook Flow -

    open_fd_account open_fd_deposit_plans open_fd_proceed open_fd_nominee open_fd_terms open_fd_otp open_fd_status

    Sample Utterance

    Flow Chart

    Open_Fd_Status

    Configuration

    Generic Configuration

    Customisation

    Integration Customisation

    Pre-Requirement

    To fetch the API of Accounts list, refer to the Balance Inquiry Documentation

    API for Fetching Deposit Plans

    Request

    Request URL:- http://one-api.active.ai/banking-integration/v1/{customerId}/deposit/plans

        customerId- String
    

    Schema

    {
      "FDAccountId": "string",
      "accessToken": "string",
      "address": "string",
      "creditableAccounts": {
        "accountId": "string",
        "accountName": "string",
        "accountNumber": "string",
        "accountType": "SAVINGS",
        "balance": {
          "amount": 0,
          "availableBalance": 0,
          "currencyCode": "string",
          "currentBalance": 0,
          "monthlyAverageBalance": 0
        },
        "bankName": "string",
        "branchAddress": "string",
        "branchId": "string",
        "branchName": "string",
        "displayAccountNumber": "string",
        "ifscCode": "string",
        "lastStatementBalance": 0,
        "lastStatementDate": "string",
        "leavesCount": "string",
        "openingDate": "string",
        "product": "Fixed Deposit",
        "productCode": "string",
        "referenceId": "string",
        "status": "NEW_ACCOUNT",
        "transactionStatus": "SUCCESS"
      },
      "customerId": "string",
      "customerName": "string",
      "debitableAccounts": {
        "accountId": "string",
        "accountName": "string",
        "accountNumber": "string",
        "accountType": "SAVINGS",
        "balance": {
          "amount": 0,
          "availableBalance": 0,
          "currencyCode": "string",
          "currentBalance": 0,
          "monthlyAverageBalance": 0
        },
        "bankName": "string",
        "branchAddress": "string",
        "branchId": "string",
        "branchName": "string",
        "displayAccountNumber": "string",
        "ifscCode": "string",
        "lastStatementBalance": 0,
        "lastStatementDate": "string",
        "leavesCount": "string",
        "openingDate": "string",
        "product": "Fixed Deposit",
        "productCode": "string",
        "referenceId": "string",
        "status": "NEW_ACCOUNT",
        "transactionStatus": "SUCCESS"
      },
      "depositPlans": [
        {
          "amount": 0,
          "interestRate": "string",
          "maturityAmount": 0,
          "minAmount": 0,
          "tenure": {
            "days": "string",
            "months": "string",
            "tenureFormatted": "string",
            "years": "string"
          }
        }
      ],
      "emailId": "string",
      "fdaccountId": "string",
      "interestPayableFrequency": [
        "string"
      ],
      "jointAccount": true,
      "maturityInstruction": [
        "string"
      ],
      "mobileNumber": "string",
      "nominee": {
        "guardian": "string",
        "minor": true,
        "nomineeAddress": "string",
        "nomineeName": "string",
        "nomineeRelationship": "string"
      },
      "remarks": "string"
    }
    

    API for Fetching Nominees for Opening Fixed Deposit

    Request

    Request URL:- [http://one-api.active.ai/banking-integration/v1/{customerId}/deposit/nominees

        customerId- String
    

    Schema

    {
      "FDAccountId": "string",
      "accessToken": "string",
      "address": "string",
      "creditableAccounts": {
        "accountId": "string",
        "accountName": "string",
        "accountNumber": "string",
        "accountType": "SAVINGS",
        "balance": {
          "amount": 0,
          "availableBalance": 0,
          "currencyCode": "string",
          "currentBalance": 0,
          "monthlyAverageBalance": 0
        },
        "bankName": "string",
        "branchAddress": "string",
        "branchId": "string",
        "branchName": "string",
        "displayAccountNumber": "string",
        "ifscCode": "string",
        "lastStatementBalance": 0,
        "lastStatementDate": "string",
        "leavesCount": "string",
        "openingDate": "string",
        "product": "Fixed Deposit",
        "productCode": "string",
        "referenceId": "string",
        "status": "NEW_ACCOUNT",
        "transactionStatus": "SUCCESS"
      },
      "customerId": "string",
      "customerName": "string",
      "debitableAccounts": {
        "accountId": "string",
        "accountName": "string",
        "accountNumber": "string",
        "accountType": "SAVINGS",
        "balance": {
          "amount": 0,
          "availableBalance": 0,
          "currencyCode": "string",
          "currentBalance": 0,
          "monthlyAverageBalance": 0
        },
        "bankName": "string",
        "branchAddress": "string",
        "branchId": "string",
        "branchName": "string",
        "displayAccountNumber": "string",
        "ifscCode": "string",
        "lastStatementBalance": 0,
        "lastStatementDate": "string",
        "leavesCount": "string",
        "openingDate": "string",
        "product": "Fixed Deposit",
        "productCode": "string",
        "referenceId": "string",
        "status": "NEW_ACCOUNT",
        "transactionStatus": "SUCCESS"
      },
      "depositPlans": [
        {
          "amount": 0,
          "interestRate": "string",
          "maturityAmount": 0,
          "minAmount": 0,
          "tenure": {
            "days": "string",
            "months": "string",
            "tenureFormatted": "string",
            "years": "string"
          }
        }
      ],
      "emailId": "string",
      "fdaccountId": "string",
      "interestPayableFrequency": [
        "string"
      ],
      "jointAccount": true,
      "maturityInstruction": [
        "string"
      ],
      "mobileNumber": "string",
      "nominee": {
        "guardian": "string",
        "minor": true,
        "nomineeAddress": "string",
        "nomineeName": "string",
        "nomineeRelationship": "string"
      },
      "remarks": "string"
    }
    

    Response

    Schema

    {
      "FDAccountId": "string",
      "depositPlans": [
        {
          "amount": 0,
          "interestRate": "string",
          "maturityAmount": 0,
          "minAmount": 0,
          "tenure": {
            "days": "string",
            "months": "string",
            "tenureFormatted": "string",
            "years": "string"
          }
        }
      ],
      "fdaccountId": "string",
      "interestPayableFrequency": [
        "string"
      ],
      "maturityInstruction": [
        "string"
      ],
      "nominee": {
        "guardian": "string",
        "minor": true,
        "nomineeAddress": "string",
        "nomineeName": "string",
        "nomineeRelationship": "string"
      },
      "referenceId": "string",
      "result": {
        "message": "string",
        "messageCode": "string",
        "status": 0
      },
      "status": "SUCCESS"
    }
    

    API for Opening Fixed Deposit Status

    Request

    Request URL:- http://one-api.active.ai/banking-integration/v1/{customerId}/deposit/confirm

        customerId- String
    

    Schema

    {
      "FDAccountId": "string",
      "accessToken": "string",
      "address": "string",
      "creditableAccounts": {
        "accountId": "string",
        "accountName": "string",
        "accountNumber": "string",
        "accountType": "SAVINGS",
        "balance": {
          "amount": 0,
          "availableBalance": 0,
          "currencyCode": "string",
          "currentBalance": 0,
          "monthlyAverageBalance": 0
        },
        "bankName": "string",
        "branchAddress": "string",
        "branchId": "string",
        "branchName": "string",
        "displayAccountNumber": "string",
        "ifscCode": "string",
        "lastStatementBalance": 0,
        "lastStatementDate": "string",
        "leavesCount": "string",
        "openingDate": "string",
        "product": "Fixed Deposit",
        "productCode": "string",
        "referenceId": "string",
        "status": "NEW_ACCOUNT",
        "transactionStatus": "SUCCESS"
      },
      "customerId": "string",
      "customerName": "string",
      "debitableAccounts": {
        "accountId": "string",
        "accountName": "string",
        "accountNumber": "string",
        "accountType": "SAVINGS",
        "balance": {
          "amount": 0,
          "availableBalance": 0,
          "currencyCode": "string",
          "currentBalance": 0,
          "monthlyAverageBalance": 0
        },
        "bankName": "string",
        "branchAddress": "string",
        "branchId": "string",
        "branchName": "string",
        "displayAccountNumber": "string",
        "ifscCode": "string",
        "lastStatementBalance": 0,
        "lastStatementDate": "string",
        "leavesCount": "string",
        "openingDate": "string",
        "product": "Fixed Deposit",
        "productCode": "string",
        "referenceId": "string",
        "status": "NEW_ACCOUNT",
        "transactionStatus": "SUCCESS"
      },
      "depositPlans": [
        {
          "amount": 0,
          "interestRate": "string",
          "maturityAmount": 0,
          "minAmount": 0,
          "tenure": {
            "days": "string",
            "months": "string",
            "tenureFormatted": "string",
            "years": "string"
          }
        }
      ],
      "emailId": "string",
      "fdaccountId": "string",
      "interestPayableFrequency": [
        "string"
      ],
      "jointAccount": true,
      "maturityInstruction": [
        "string"
      ],
      "mobileNumber": "string",
      "nominee": {
        "guardian": "string",
        "minor": true,
        "nomineeAddress": "string",
        "nomineeName": "string",
        "nomineeRelationship": "string"
      },
      "remarks": "string"
    }
    

    Response

    Schema

    {
      "FDAccountId": "string",
      "depositPlans": [
        {
          "amount": 0,
          "interestRate": "string",
          "maturityAmount": 0,
          "minAmount": 0,
          "tenure": {
            "days": "string",
            "months": "string",
            "tenureFormatted": "string",
            "years": "string"
          }
        }
      ],
      "fdaccountId": "string",
      "interestPayableFrequency": [
        "string"
      ],
      "maturityInstruction": [
        "string"
      ],
      "nominee": {
        "guardian": "string",
        "minor": true,
        "nomineeAddress": "string",
        "nomineeName": "string",
        "nomineeRelationship": "string"
      },
      "referenceId": "string",
      "result": {
        "message": "string",
        "messageCode": "string",
        "status": 0
      },
      "status": "SUCCESS"
    }
    

    Following are the types to customize the integration for the Deposit Account

    Pre requirement

    Deposit AccountsAPIs should already be integrated.

    Service API to integrate with Bank API

    Package Class Name Method Name Details
    services DepositService getDepositPlansResponseEntity(),getDepositPlanNomineesResponseEntity(),getDepositPlanFinalResponseResponseEntity() You can call your API inside this method.
    domain-->request DepositServiceRequest Request Class
    domain-->response DepositServiceResponse Response Class
    mapper-->response DepositPlanResponseMapper Map API response to this mapper class.
    model DepositAccount,DepositPlan,Nominee,Tenure Fields, Getter/Setter methods

    Writing custom service and invoking in the camel route

    You can directly call your API from the integration camel by following the below steps.

    Class Diagram

    Class Diagram for Deposit Service Request and Deposit Service Response-

    Request Object:- Figure 1.1 describes the class diagram for DepositServiceRequest Object of RB with fields and dependencies.

    Response Object:- Figure 1.2 describes the class diagram for DepositServiceResponse Object of RB With fields and dependencies.

    Deposit_Service_Request  Figure 1.1

                                                Deposit_Service_Response Figure 1.2 

    Integrating with webhook

    You can directly call your API using a workflow webhook and customize your response refer here.

    Response Customisation

    Messages

    Kindly refer messages for this use case on admin by selecting respective category (Open Certificate of Deposit)

    Templates

    Kindly refer Templates for this use case on admin by selecting a category (Open Certificate of Deposit)

    Hooks or Fulfilments

    Kindly refer Hooks or Fulfilments for name(Open Certificate of Deposit, Deposit Service Common) use case on admin as guided on here.

    Following are the Template Properties

    1. When all accounts to be shown as list and list size<4. Default is list template, to change to carousel using template editor openfd_ALL_ACCOUNTS_TEMPLATE_ID=FDOpenAccountList

    2. When all accounts to be shown as a list, list size>4 and show more is enabled. Default is list template openfd_ACCOUNTS_WITH_SHOW_MORE_TEMPLATE_ID=FDOpenShowMoreAccountList

    3. When all accounts in the  list should be displayed, after clicking show  more button openfd_ACCOUNTS_SHOW_MORE_REQ_TEMPLATE_ID=FDOpenShowMoreAccountList

    4. When list contains only one account. openfd_SINGLE_ACCOUNT_TEMPLATE_ID=FDOpenSingleAccountList

    5. Shows list of accounts in case of account number mismatch scenario. Default is a list. openfd_ACCT_SELECT_TEMPLATE_ID=FDOpenAccountList

    6. When all accounts to be shown as a list with account details and list size>4 and show more is enabled. openfd_ACCT_SELECT_WITH_SHOW_MORE_TEMPLATE_ID=FDOpenWebViewAccountList

    7. Displays available deposit plans for opening a Fixed Deposit. openfd_DEPOSIT_PLAN_SELECTION=DepositPlanSelection

    Customisation of Image Properties:-

    To customise images. Kindly refere here

    Portfolio Summary*


    Coming Soon...

    Replace Card


    Overview

    Use case name Card replacement / reissue
    Type Service request
    Intent txn-productapply
    Entities
    • card type
    • card name
    • account number (debit card)
    • card number
    Banking products supported Operative accounts, credit card
    Channels supported Web, Mobile, FB messenger, Alexa
    Login Yes
    2FA Yes
    API availability Yes
    Integrations done NA
    Stub data availability Yes

    Features

    Summary

    1. Card replacement /reissue can be requested by the user over conversation.

    2. User has to provide the card number as reference for reissue.

      Detailed

    3. User can request for re-issue of their card.

    4. System will proceed to card selection step, if more cards exist for user.

    5. If the card selected is in ‘blocked/inactive’ status, system will proceed to confirmation step for re-issue

    6. If the card is active, system will check if user wants to block the card ahead of re-issue.

    7. The re-issued card can be dispatched to one of the addresses supported as per configuration.

    8. Once user selects address type, user has to confirm the reissue request.

    9. Request reference will be shown to user, based on API response.

    Flow CX

    Default Flow:- List of  Cards -> Select Replace/Block and Replace Card ->  Confirm -> Enter Otp -> Replace Card Status.

    Note: This can be flowchart / GIF or screenshot to represent OOTB flow

    line

    Facebook Flow -

    replace_card_login replace_card_login_page replace_card_list replace_card_type replace_card_confirm replace_card_otp replace_card_status

    Sample Utterance

    Sample utterances that work as per the flow:-

    Replace_Status

    Configuration

    Generic Configuration

    Customisation

    Integration Customisation

    Pre-Requirement

    To fetch the API of credit and debit cards list, refer to the Balance Inquiry Documentation

    API for Replace Card Status

    Request

    Request URL:- http://one-api.active.ai/banking-integration/v1/{customerId}/cards/{cardNumber}/replaceCard/confirm

     customerId - String
     cardNumber - String
    

    Schema

    {
      "accessToken": "string",
      "address": "string",
      "cardDetails": {
        "accountId": "string",
        "accountName": "string",
        "activationDate": "string",
        "amountDue": 0,
        "availableCash": 0,
        "availableCreditLimit": 0,
        "bankName": "string",
        "branchAddress": "string",
        "branchId": "string",
        "branchName": "string",
        "cardHolderName": "string",
        "cardIssuer": "VISA",
        "cardName": "string",
        "cardNumber": "string",
        "cardStatus": "ISSUED",
        "cardType": "CREDIT_CARD",
        "cashLimit": "string",
        "closingBalance": 0,
        "creditLimit": 0,
        "currencyCode": "string",
        "displayCardNumber": "string",
        "domesticATMLimit": "string",
        "domesticPOSLimit": "string",
        "expiryDate": "string",
        "internationalATMLimit": "string",
        "internationalEnabled": true,
        "internationalPOSLimit": "string",
        "isInternationalEnabled": true,
        "lastStatementBalance": 0,
        "lastStatementDate": "string",
        "maxCashLimit": "string",
        "maxCreditLimit": "string",
        "maxDomesticATMLimit": "string",
        "maxDomesticPOSLimit": "string",
        "maxInternationalATMLimit": "string",
        "maxInternationalPOSLimit": "string",
        "minimumPayment": 0,
        "openingBalance": 0,
        "outStandingAmount": 0,
        "oversearCardActivated": true,
        "overseasCardActivated": true,
        "paymentDueDate": "string",
        "permanentCreditLimit": 0,
        "productCode": "string",
        "productType": "string",
        "temporaryCreditLimit": 0
      },
      "customerId": "string",
      "customerName": "string",
      "emailId": "string",
      "mobileNumber": "string",
      "replaceType": "REPLACE"
    }
    

    Response

    {
      "cardDetail": {
        "dailyLimit": 0,
        "newCashLimit": "string",
        "newCreditLimit": "string",
        "newDomesticATMLimit": "string",
        "newDomesticPOSLimit": "string",
        "newInternationalATMLimit": "string",
        "newInternationalPOSLimit": "string",
        "overseasDailyLimit": 0,
        "overseasMonthlyLimit": 0,
        "referenceId": "string",
        "responseCode": "string",
        "transactionStatus": "SUCCESS"
      },
      "result": {
        "message": "string",
        "messageCode": "string",
        "status": 0
      }
    }
    

    Following are the types to customize the integration for the Replace Card**

    Pre requirement- 

    Cards(Debit/Credit Card) APIs should already be integrated.

    Service API to integrate with Bank API

    Package Class Name Method Name Details
    services CardsService getReplaceCardResponseEntity() You can call your API inside this method.
    domain-->request ReplaceCardConfirmRequest Request Class
    domain-->response ReplaceCardConfirmResponse Response Class
    mapper-->response CardsResponseMapper Map API response to this mapper class.
    model Card Fields, Getter/Setter methods

    Writing custom service and invoking in the camel route

    You can directly call your API from the integration camel by following the below steps.

    Class Diagram

    For Card Service Request and Card Service Response, check here.

    Integrating with webhook

    You can directly call your API using a workflow webhook and customize your response refer here.

    Response Customisation

    Messages

    Kindly refer messages for this use case on admin by selecting respective category (Replace Card)

    Templates

    Kindly refer Templates for this use case on admin by selecting a category (Replace Card).

    Following are the Template

    Default card list templates are carousel to change it to list use template editor

    Hooks or Fulfilments

    Kindly refer Hooks or Fulfilments for name (Replace Card) use case on admin as guided on here.

    Customisation of Image Properties:-

    To customise images. Kindly refere here

    Request for DD*


    Coming Soon...

    Reset Pin


    Overview

    Use case name Reset PIN
    Type Service request
    Intent txn-pinsettings
    Entities
    • card type
    • card name
    • account number (debit card)
    • card number
    Banking products supported Operative accounts, credit card
    Channels supported Web, Mobile, FB messenger, Alexa
    Login Yes
    2FA Yes
    API availability Yes
    Integrations done NA
    Stub data availability Yes

    Features

    Summary

    1. PIN reissue can be done online over a conversation.

    Detailed

    1. User can request for re-issue of their card PIN.

    2. System will proceed to card selection step, if more cards exist for user.

    3. The user will be shown PIN reissue form to reset PIN

      • User needs to enter new PIN and confirm by re-entering the PIN
    4. User will need to confirm the PIN change

    5. Request reference will be shown to user, based on API response.

    Flow CX

    Note: This can be flowchart / GIF or screenshot to represent OOTB flow

    line

    Facebook Flow -

    reset_pin_login reset_pin_login_page reset_pin_card_list reset_pin_webview reset_pin_confirm reset_pin_otp reset_pin+_status

    Sample utterance

    Reset_PIN_Flow

    Configuration

    Generic Configuration

    Customisation

    Integration Customisation

    Pre-Requirement:

    To fetch the API of credit and debit cards list, refer to the Balance Inquiry Documentation.

    API for Reset Pin Status

    Request

       customerId- String
    
       cardNumber- String
    
    

    Schema

    {
      "accessToken": "string",
      "address": "string",
      "cardDetails": {
        "accountId": "string",
        "accountName": "string",
        "activationDate": "string",
        "amountDue": 0,
        "availableCash": 0,
        "availableCreditLimit": 0,
        "bankName": "string",
        "branchAddress": "string",
        "branchId": "string",
        "branchName": "string",
        "cardHolderName": "string",
        "cardIssuer": "VISA",
        "cardName": "string",
        "cardNumber": "string",
        "cardStatus": "ISSUED",
        "cardType": "CREDIT_CARD",
        "cashLimit": "string",
        "closingBalance": 0,
        "creditLimit": 0,
        "currencyCode": "string",
        "displayCardNumber": "string",
        "domesticATMLimit": "string",
        "domesticPOSLimit": "string",
        "expiryDate": "string",
        "internationalATMLimit": "string",
        "internationalEnabled": true,
        "internationalPOSLimit": "string",
        "isInternationalEnabled": true,
        "lastStatementBalance": 0,
        "lastStatementDate": "string",
        "maxCashLimit": "string",
        "maxCreditLimit": "string",
        "maxDomesticATMLimit": "string",
        "maxDomesticPOSLimit": "string",
        "maxInternationalATMLimit": "string",
        "maxInternationalPOSLimit": "string",
        "minimumPayment": 0,
        "openingBalance": 0,
        "outStandingAmount": 0,
        "oversearCardActivated": true,
        "overseasCardActivated": true,
        "paymentDueDate": "string",
        "permanentCreditLimit": 0,
        "productCode": "string",
        "productType": "string",
        "temporaryCreditLimit": 0
      },
      "customerId": "string",
      "customerName": "string",
      "emailId": "string",
      "inputPin": "string",
      "mobileNumber": "string"
    }
    

    Following are the types to customise the integration for the Reset Pin

    Pre requirement :

    Cards(Debit/Credit Card) APIs should already be integrated.

    Service API to integrate with Bank API

    Package Class Name Method Name Details
    services CardsService getResetPinResponseEntity() You can call your API inside this method
    domain-->request ResetPinConfirmRequest Request Class
    domain-->response ResetPinConfirmResponse Response Class
    mapper-->response CardsResponseMapper Map API response to this mapper class
    model Card Fields, Getter/Setter methods

    Writing custom service and invoking in the camel route

    You can directly call your API from the integration camel by following the below steps.

    Class Diagram

    For Card Service Request and Card Service Response, check here.

    Integrating with web-hook

    You can directly call your API using a workflow webhook and customize your response refer here.

    Response Customisation

    Messages

    Templates

    Kindly refer Templates for this use case on admin by selecting a category (Reset Pin)

    Following are the Template Properties:- Default card list templates are carousel to change it to list use template editor *

    When all cards list to be shown and list size<4. Default is carousel template resetpin_ALL_ACCOUNTS_TEMPLATE_ID=ResetPinAllAccounts

    When all cards list to be shown as list and list size>4 and show more is enabled. resetpin_ACCOUNTS_WITH_SHOW_MORE_TEMPLATE_ID=CardsWithShowMore

    When all cards in the list need to be displayed for selection, after clicking show more button resetpin_ACCOUNTS_SHOW_MORE_REQ_TEMPLATE_ID=CardsWithShowMore

    When the list contains only one card. Default is a card template resetpin_SINGLE_ACCOUNT_TEMPLATE_ID=SingleCardSelection

    When all cards list to be shown as list and list size>4 and show more is enabled. resetpin_ACCT_SELECT_WITH_SHOW_MORE_TEMPLATE_ID=CardsWithShowMore

    Shows a list of cards in case of a card number mismatch scenario. The default is a carousel. resetpin_ACCT_SELECT_TEMPLATE_ID=ResetPinCardAccountMismatch

    Hooks or Fulfilment's

    Kindly refer Hooks or Fulfilment's for name( Reset Pin) use case on admin as guided on here.

    Customisation of Image Properties

    To customise images. Kindly refere here

    Stop Cheque*


    Coming Soon...

    Topup*


    Coming Soon...

    Transaction History


    Overview

    Features

    Summary

    1. User can inquire on transaction history in a number of ways including date range, amount criteria etc.

    Detailed

    1. User expresses interest in checking transaction history for an account
    2. System will look for terms indicating the period for which the history is required
      • From-to date range
      • Last week, month etc - system will convert to date range based on current date
    3. User can also specify filter criteria in terms of the transaction details like -
      • last ‘n’ debits
      • Credits in last week
    4. Specify transaction details in terms of transaction amount , merchant etc
    5. Transactions matching input criteria will be shown on screen to the user

    Flow CX

    Default Flow:-Account selection → List of transactions

    Variations in the flow can be seen in balance inquiry

    Sample CX for default flow

    Note: This can be flowchart / GIF or screenshot to represent OOTB flow

    line

    Sample Utterances-

    Customizations

    Integration Customizations

    Integration can be done in so many ways

    Microservices provided by RB(Banking-Integration)

    Integration can be done in so many ways

    1. Microservices provided by RB(Banking-Integration)
      • Here only default flows can be integrated
      • Explanation for basic details were given heremicroservice doc
    2. Using camel routes of RB itself
      • Here need to understand Request and response of each RB domain objects

    Microservices provided by RB(Banking-Integration)-

    API to fetch account transactions-

    Request-

    URL-http://one-api.active.ai/banking-integration/v1/{customerId}/accounts/{accountId}/transactions

    CustomerId- String
    
    AccountId- String 
    

    Response-

    Schema: 

    {
    
      "accountTransactions": [
    
        {
    
          "accountId": "string",
    
          "accountNumber": "string",
    
          "amount": 0,
    
          "category": "string",
    
          "categorySubType": "string",
    
          "categoryType": "string",
    
          "currency": "string",
    
          "description": "string",
    
          "foreignTxnAmount": 0,
    
          "foreignTxnCurrency": "string",
    
          "foreignTxnExchangeRate": 0,
    
          "merchantName": "string",
    
          "referenceId": "string",
    
          "transactionId": "string",
    
          "transactionType": "DEBIT",
    
          "txnDate": "string"
    
        }
    
      ],
    
      "result": {
    
        "message": "string",
    
        "messageCode": "string",
    
        "status": 0
    
      }
    
    }
    

    API to fetch card transactions-

    Request-

    URL-http://one-api.active.ai/banking-integration/v1/{customerId}/accounts/{cardNumber}/transactions

    CustomerId- String
    
    CardNumber- String 
    
    

    Response-

    Schema:

    {
    
      "cardTransactions": [
    
        {
    
          "accountId": "string",
    
          "accountNumber": "string",
    
          "amount": 0,
    
          "cardType": "CREDIT_CARD",
    
          "category": "string",
    
          "categorySubType": "string",
    
          "categoryType": "string",
    
          "currency": "string",
    
          "description": "string",
    
          "emiEligibility": "string",
    
          "foreignTxnAmount": 0,
    
          "foreignTxnCurrency": "string",
    
          "foreignTxnExchangeRate": 0,
    
          "merchantName": "string",
    
          "referenceId": "string",
    
          "transactionId": "string",
    
          "transactionType": "DEBIT",
    
          "txnDate": "string"
    
        }
    
      ],
    
      "result": {
    
        "message": "string",
    
        "messageCode": "string",
    
        "status": 0
    
      }
    
    }
    

    Using camel routes of RB itself

    As described in the above configurations need to create specific routes from the RB exposed routes, will suggest don’t change any base routes without any notice to the product team.

    Cards/Account Transaction API’s- Request Object:- Figure 1.1 describes the class diagram for TransactionInquiryRequest Object of RB with fields and dependencies.

    Response Object:- Figure 1.2 describes the class diagram for TransactionInquiryResponse Object of RB With fields and dependencies.

    TransactionInquiryRequest Figure- 1.1 TransactionInquiryRequest

    TransactionInquiryResponse                                 Figure- 1.2 TransactionInquiryResponse

    Response Customisation

    Messages

    Kindly refer to messages for this use case on admin by selecting the respective category (Transaction History and Transaction Common ).

    Templates

    Kindly refer to templates for this use case on admin by selecting the respective category (Transaction History and Transaction Common). Account selection template Ids to display transactions

    When all accounts to be shown as list and list size<4. Default is list template to change to carousel use template editor

    qry-transaction-history_ALL_ACCOUNTS_TEMPLATE_ID=AllAccountsList

    When all accounts to be shown as a list with account details and list size >4 and show more is enabled. Default is list template             qry-transaction-history_ACCOUNTS_WITH_SHOW_MORE_TEMPLATE_ID=AccountsList WithShowMore

    When all accounts in the  list should be displayed, after clicking show more button

    qry-transaction-history_ACCOUNTS_SHOW_MORE_REQ_TEMPLATE_ID=AccountsList

    When the list contains only one account

    qry-transaction-history_SINGLE_ACCOUNT_TEMPLATE_ID=TxnInqAccountSelection

    Shows list of accounts in case of account number mismatch scenario and list size<4

    qry-transaction-history_ACCT_SELECT_TEMPLATE_ID=AllAccountsList

    Shows list of accounts in case of account number mismatch scenario, list size>4 and show more is enabled

    qry-transaction-history_ACCT_SELECT_WITH_SHOW_MORE_TEMPLATE_ID=BalInqAcctSelection

    Templates displaying transaction list

    Show list of transactions as a list and list size<4.         qry-transaction-history_LIST_TEMPLATE=TransactionList

    Show list of transactions as a list and list size>4 and show more is enabled   

    qry-transaction-history_SHOWMORE_LIST_TEMPLATE=TransactionListShowMore

    Hooks or Fulfillment

    Kindly refer to hooks for this use case on admin by selecting the respective category (Transaction History and Transaction Common).

    Customisation of Image Properties

    To customise images. Kindly refere here

               

    Update Credit Card Limit


    Overview

    Use case name Update credit card transaction limit
    Type Service request
    Intent txn-cardsettings
    Entities
    • product type
    • product name
    • account number
    • card number
    • card type
    • card issuer
    • card number
    • type of limit
    • limit amount (old, new)
    Banking products supported Cards
    Channels supported Web, Mobile, FB messenger, Alexa
    Login Yes
    2FA Yes
    API availability Yes
    Integrations done NA
    Stub data availability Yes

    Features

    Summary

    1. Debit card limit update can be requested by user via chat.

    2. User can choose relevant limit type and provide new limit.

    Detailed

    1. User says ‘Update card limit’ or ‘Update domestic ATM limit on card 2768 to 20000’

    2. In the absence specific reference to ‘debit card’, system will ask user to choose the card type (debt/credit) and the specific card for which limit is to be updated.

    3. After card selection, relevant limit types will be shown as per configuration. The corresponding max limits and existing limits will be shown against each limit type

    1. User can choose to modify and provide the new limit within acceptable range and proceed for confirmation.

    2. Post successful API call, system will confirm limit update online.

      Flow CX

      Flow supported for updating the limit of cards :-

    Flow:- List of Cards -> Select Limit to modify -> modify Limit -> confirm limit -> Enter OTP -> Status of Limit.

    Sample CX for default flow

    Note: This can be flowchart / GIF or screenshot to represent OOTB flow

    line

    Facebook Flow -

    update_limit_login update_limit_login_page update_limit_card_list update_limit_types update_limit update_limit_confirm update_limit_otp update_limit_status

    Sample Utterances

    Sample utterances that work as per the flow:-

    Update_Limit_flow

    Configuration

    Generic Configuration

    Customisation

    Integration Customisation

    Pre-Requirement

    API for  Fetching Limit Details

    Request

    Request URL :- http://one-api.active.ai/banking-integration/v1/{customerId}/creditcards/{cardNumber}/getLimits

    customerId - String
    cardNumber - String
    

    Response

    Schema

    {
      "card": [
        {
          "accountId": "string",
          "accountName": "string",
          "activationDate": "string",
          "amountDue": 0,
          "availableCash": 0,
          "availableCreditLimit": 0,
          "bankName": "string",
          "branchAddress": "string",
          "branchId": "string",
          "branchName": "string",
          "cardHolderName": "string",
          "cardIssuer": "VISA",
          "cardName": "string",
          "cardNumber": "string",
          "cardStatus": "ISSUED",
          "cardType": "CREDIT_CARD",
          "cashLimit": "string",
          "closingBalance": 0,
          "creditLimit": 0,
          "currencyCode": "string",
          "displayCardNumber": "string",
          "domesticATMLimit": "string",
          "domesticPOSLimit": "string",
          "expiryDate": "string",
          "internationalATMLimit": "string",
          "internationalEnabled": true,
          "internationalPOSLimit": "string",
          "isInternationalEnabled": true,
          "lastStatementBalance": 0,
          "lastStatementDate": "string",
          "maxCashLimit": "string",
          "maxCreditLimit": "string",
          "maxDomesticATMLimit": "string",
          "maxDomesticPOSLimit": "string",
          "maxInternationalATMLimit": "string",
          "maxInternationalPOSLimit": "string",
          "minimumPayment": 0,
          "openingBalance": 0,
          "outStandingAmount": 0,
          "oversearCardActivated": true,
          "overseasCardActivated": true,
          "paymentDueDate": "string",
          "permanentCreditLimit": 0,
          "productCode": "string",
          "productType": "string",
          "temporaryCreditLimit": 0
        }
      ],
      "result": {
        "message": "string",
        "messageCode": "string",
        "status": 0
      }
    }
    

    API for Update Limit Status

    Request

    Request URL: http://one-api.active.ai/banking-integration/v1/{customerId}/creditcards/{cardNumber}/limit/confirm

     customerId - String
     cardNumber - String
    

    Schema:

    {
      "accessToken": "string",
      "address": "string",
      "cardDetails": {
        "accountId": "string",
        "accountName": "string",
        "activationDate": "string",
        "amountDue": 0,
        "availableCash": 0,
        "availableCreditLimit": 0,
        "bankName": "string",
        "branchAddress": "string",
        "branchId": "string",
        "branchName": "string",
        "cardHolderName": "string",
        "cardIssuer": "VISA",
        "cardName": "string",
        "cardNumber": "string",
        "cardStatus": "ISSUED",
        "cardType": "CREDIT_CARD",
        "cashLimit": "string",
        "closingBalance": 0,
        "creditLimit": 0,
        "currencyCode": "string",
        "displayCardNumber": "string",
        "domesticATMLimit": "string",
        "domesticPOSLimit": "string",
        "expiryDate": "string",
        "internationalATMLimit": "string",
        "internationalEnabled": true,
        "internationalPOSLimit": "string",
        "isInternationalEnabled": true,
        "lastStatementBalance": 0,
        "lastStatementDate": "string",
        "maxCashLimit": "string",
        "maxCreditLimit": "string",
        "maxDomesticATMLimit": "string",
        "maxDomesticPOSLimit": "string",
        "maxInternationalATMLimit": "string",
        "maxInternationalPOSLimit": "string",
        "minimumPayment": 0,
        "openingBalance": 0,
        "outStandingAmount": 0,
        "oversearCardActivated": true,
        "overseasCardActivated": true,
        "paymentDueDate": "string",
        "permanentCreditLimit": 0,
        "productCode": "string",
        "productType": "string",
        "temporaryCreditLimit": 0
      },
      "customerId": "string",
      "customerName": "string",
      "emailId": "string",
      "mobileNumber": "string"
    }
    

    Response

    Schema

    {
      "cardDetail": {
        "dailyLimit": 0,
        "newCashLimit": "string",
        "newCreditLimit": "string",
        "newDomesticATMLimit": "string",
        "newDomesticPOSLimit": "string",
        "newInternationalATMLimit": "string",
        "newInternationalPOSLimit": "string",
        "overseasDailyLimit": 0,
        "overseasMonthlyLimit": 0,
        "referenceId": "string",
        "responseCode": "string",
        "transactionStatus": "SUCCESS"
      },
      "result": {
        "message": "string",
        "messageCode": "string",
        "status": 0
      }
    }
    

    Following are the types to customize the integration for the Update Limit:-

    Pre requirement  Cards(Debit/Credit Card) APIs should already be integrated.

    Service API to integrate with Bank API:-

    Package Class Name Method Name Details
    services CardsService getCreditCardLimitResponseEntity(),getCreditLimitConfirmResponseEntity(),getDebitCardLimitResponseEntity(),getDebitLimitConfirmResponseEntity() You can call your API inside this method.
    domain request CreditCardLimitConfirmRequest,DebitCardLimitConfirmRequest Request Class
    domain response CreditCardLimitResponse,DebitCardLimitResponse,CreditCardLimitConfirmResponse,DebitCardLimitConfirmReponse Response Class
    mapper response CardsResponseMapper Map API response to this mapper class.
    model Card Fields, Getter/Setter methods

    Writing custom service and invoking in the camel route

    Integrating with webhook

    You can directly call your API using a workflow webhook and customize your response Refer here.

    Response Customisation

    Messages

    Customization of Image Properties

    Templates

    Kindly refer Templates for this use case on admin by selecting a category (Debit Limit)

    Following are the Template Properties

    Hooks or Fulfilments

    Kindly refer Hooks or Fulfilments for name(Debit Limit) use case on admin as guided on here**

    Customization of Image Properties:-

    To customise images. Kindly refere here

    Update Debit Card Limit


    click here

    Appendix

    Category Product Use case name Description
    Inquiry Account inquiry Checking Account's/Card/Loan Product Name
    Inquiry Account inquiry Checking Charged or levied interest rates on Credit Card
    Inquiry Account inquiry Checking Interest rates on Fixed Deposit, Recurring Deposit and Current Account & Savings Account
    Inquiry Account inquiry Checking the Nominee on the account
    Inquiry Account inquiry Checking the base branch
    Inquiry Account inquiry Checking the Expiry Date, Due Date
    Inquiry Account inquiry Checking the card type, card numbers one possesses
    Inquiry Account inquiry check Loans due date, next installment amount, next installment date
    Inquiry Account inquiry loan account enquiry of outstanding balances
    Inquiry Account inquiry Checking the account number
    Inquiry Account inquiry Checking Investment linked to Account
    Inquiry Account inquiry Checking joint account holder details
    Inquiry Account inquiry Checking Overdraft facility
    Inquiry Account inquiry Product linked to Account
    Inquiry Account inquiry Checking personal Details
    Inquiry Account inquiry Checking tenure, renewal and maturity date
    Inquiry Account Inquiry Show operative account details
    Inquiry Account inquiry Checking the account bank code (IFSC, SWIFT, branch code, etc..)
    Inquiry Account activity Show mini statement
    Inquiry Portfolio inquiry - Assets & liabilities Net Worth, Assets, Liabilities, General Balances Enquiry
    Inquiry Balance inquiry - liabilities Account Balances (Current, Savings, AccountType)
    Inquiry Due inquiry - card Card Outstandings and Dues (Credit Card)
    Inquiry Card details Card Limits and Balances
    Inquiry Card details Checking for reward points, available points to redeem
    Inquiry Due inquiry - loan Loans outstanding (Currrent Outstanding, Total Disbursed Amount)
    Inquiry Deposit details Deposit Balances
    Inquiry Deposit details Checking for deposit maturity date, interest rates, accrued interest
    Inquiry View loyalty points Loyalty points enquiry
    Inquiry Balance inquiry - cards Card balance
    Inquiry View payees Payee Inquiry (list of payees)
    Inquiry View billers Biller Inquiry (List of registered billers)
    Inquiry Account activity Transaction Check
    Inquiry Account activity Transaction History
    Inquiry Account activity Transaction between dates
    Inquiry Account activity Transaction by amount
    Inquiry Account activity Transaction by debit/credit
    Inquiry Account activity Transaction by count, last transaction
    Inquiry Statement - download Transaction Statement Request (Email, PDF, HardCopy … for month or month range)
    Inquiry Spend analysis Spend Query - Get Total of Spends by Type/Merchant/amount - all products
    Inquiry ATM / Branch locator Locate ATM / Branches / CDM
    Inquiry Account inquiry Checking joint account holder details
    Inquiry Account inquiry Checking personal Details
    Inquiry Account inquiry Checking tenure, renewal and maturity date
    Inquiry Portfolio inquiry - Assets & liabilities Show all my accounts and investments
    Inquiry Card Specific Inquires Enquire about benefits and features on visa/master/maestro card
    Inquiry Autopay - view View Autopay Details
    Inquiry SI inquiry View Standing Instructions
    Inquiry Biller - view View Billers
    Inquiry Office hours Hours of operation
    Inquiry Delivery Status Status of delivery/shipment of credit card
    Inquiry Account Inquiry Checking the account number
    Inquiry Account Inquiry Show operative account details
    Inquiry View service requests Show all my outstanding service requests
    Inquiry Check sublimit Checking sublimits (Cash withdrawal, emergency cash advance)
    Inquiry Check card numbers Checking Card numbers
    Inquiry Charges inquiry Checking late payment fee applicable
    Inquiry Unbilled transactions Unbilled transactions in a period and amount range
    Inquiry Billed transactions Billed transactions in a period and amount range
    Inquiry Statement - deposit view Fixed Deposit advice
    Inquiry Bills due Check bills that are due or coming up
    Inquiry Status - bills Check if a bill has been paid
    Inquiry Bill inquiry Bill Payment Inquiry and Receipt Request
    Inquiry Transaction inquiry Funds Transfer Inquiry and Receipt Request
    Inquiry Charges inquiry Charges in my account for a period
    Inquiry EMI inquiry EMI Related Enquiries
    Inquiry Application status Application Status enquiry
    Inquiry Charges inquiry checking Card Charges and Fees
    Inquiry Card inquiry Checking Credit Card bill due date, expiry date, and interest free period
    Inquiry Balance inquiry view total debt amount
    Inquiry Offers Offer Enquiry (deals, promotions, discounts)
    Inquiry Interest rates inquiry Interest rates on loan
    Inquiry Charges On Account Inquiry Account maintenance charges, SMS charges, ATM Charges, Locker charges
    Service Request Account closure Close/Foreclose Accounts/loan/deposit
    Service Request Convert to Installment plan Convert to EMI
    Service Request Change of limit Change / Update credit limit
    Service Request Block - temporary Request Temporary Block
    Service Request Reissue card Request Reissue of Card
    Service Request Status Reissue card Check Status of ReIssue
    Service Request PIN change Change PIN
    Service Request Block Debit card Blocking Lost or Compromised Debit Card
    Service Request Block Credit card Blocking Lost or Compromised Credit Card
    Service Request Block Forex card Blocking Lost or Compromised Forex Card
    Service Request Dispute a card transaction Raise a Dispute for unauthorised transaction
    Service Request Change of limit Change / Update Debit Card Limit
    Service Request Change of limit Change / Update Credit Card Limit
    Service Request Profile update - address Change of communication Address
    Service Request Profile update - phone number Change of Telephone number
    Service Request Profile update - email address Change of email address
    Service Request Close Fixed Deposit Liquidating deposits (Recurring Deposit, Fixed Deposit, term deposit)
    Service Request PIN change Reissuing card PIN
    Service Request Check book request Request for CheckBook
    Service Request Check/Cheque status Checking about status of a cheque/check
    Service Request Demand draft request Request for Demand Draft
    Service Request Forex rate Exchange rate conversion
    Service Request Call back request Call Back Request
    Service Request Live agent transfer Talk to agent
    Service Request Account nick name Setting account nick name
    Service Request Report fraud / dispute Raise a complaint / dispute
    Service Request Generic service request Raise a general request
    Service Request Biller - cancel Delete Registered Billers
    Service Request Recharge Register Mobile/broadband for recharge
    Service Request Payee - register Add New Payee
    Service Request Payee - cancel Delete Payee
    Service Request Biller - register Add Biller
    Service Request Autopay - cancel Deregister for Auto Bill Payment
    Service Request Autopay - register Register for Auto Bill Payment
    Service Request Card activation Card (debit and credit) activation
    Service Request Autopay - modify Enable / Disable / Alter AutoPay
    Service Request International usage - enable Card (debit and credit) overseas activation
    Service Request International usage - disable Card (debit and credit) overseas de-activation
    Service Request Stop payment Stop Cheque / Checks
    Service Request Rewards redemption Redemption of Loyalty points
    Service Request Product Apply Open Fixed / Term Deposit
    Service Request Product Apply Apply for Loan - Lead Generation
    Service Request Product Apply Applying for SMS banking
    Service Request Product Apply Apply for Gift Card
    Service Request Product Apply Apply for Prepaid Card
    Service Request Welcome kit status Inquire on status of welcome kit
    Service Request Locker availability Check for locker availability
    Service Request Document update Update ID documents
    Service Request Joint holder addition Add Joint Account Holder
    Service Request Request passbook Getting passbook for accounts(savings and current)
    Service Request Remove joint holder Remove Joint Account Holder
    Service Request Card application Apply For Card
    Service Request ATM usage - disable Blocking ATM usage
    Service Request Close -card Cancel Card
    Service Request Waiver - late fee Request for late fee waiver
    Service Request Nominee update Change of Nominee for All products
    Service Request Restructure loan Change of Tenure
    Service Request Waiver - charges Request for Waiver of charges
    Service Request Origination - account Opening New Accounts
    Service Request Product apply Apply for fixed deposit
    Service Request Product apply Apply For overdraft
    Service Request Change personal details Update Personal Details (address, email id, mobile number, etc.. )
    Service Request Biller - cancel Delete Registered Billers
    Service Request Reissue card Getting a replacement card(credit/debit)
    Service Request change of limit set card transaction limit
    Service Request Autopay - modify Enable / Disable / Alter AutoPay
    Service Request Set Reminder Set Bill Payment Reminder
    Service Request Fraud reporting report fraud
    Service Request Customer summary Loan customer summary
    Service Request Refinance Lower rate loan update
    Service Request Reapply reapply loan
    Service Request Make payment Pay next installment or part closure
    Service Request Activate alerts Activate alerts on SMS/Email
    Service Request Unsubscribe alerts Unsubscribe for alerts on SMS/Email
    Service Request Branch transfer request Transferring account to other branches
    Transactions Fund transfer - adhoc Adhoc payment to deposit Account in same bank
    Transactions Fund transfer - adhoc Adhoc payment to Account in other bank
    Transactions Fund transfer - own Funds Transfer to own accounts in the bank
    Transactions Fund transfer - third party Funds Transfer to registered payees in same bank
    Transactions Fund transfer - Other bank Funds Transfer to registered payees of other bank
    Transactions Fund transfer - Overseas Funds Transfer to overseas registered payees
    Transactions Payment - Credit Card Pay Credit Card in same bank
    Transactions Payment - Credit Card Adhoc Credit Card payment in same bank
    Transactions Payment - loan Pay Loan Account in Same Bank
    Transactions Payment - third party Other bank payees
    Transactions Payment - biller Bill Payment Registered Biller from Current Account & Savings Account
    Transactions Payment - adhoc biller Bill Payment AdHoc(unregistered biller)
    Transactions Payment - P2P P2P Funds Transfer (email / Phone / twitter / fbid )
    Transactions Payment - schedule Schedule one time or frequency based transfer
    Transactions Payment - cancel Cancel recurring / schedule funds transfer
    Transactions Payment - biller Bill Payment Registered Biller from Credit Card
    Transactions Payment - Credit Card other bank Credit Card Bill Payment
    Transactions Collect request Request Money
    Transactions Payment - prepaid Recharge Mobile / broadband
    Transactions Payment - loan Pay Loan Account in Same Bank
    Transactions Fund transfer Fund Transfer Recurring Scheduled
    Transactions Balance Transfer Apply for balance transfer
    Transactions Debt consolidation Apply for debt consolidation