Retail Banking Setup
Import Workspace
Follow the below steps for importing a existing workspace -
Download the workspace zip from below artifactory link- Workspace
Click on import workspace.
Select the downloaded workspace.
Change the botId in your index.js file. $TOMCAT_LOCATION/WEBAPPS/MORFEUSWEBSDK/JS/index.js
Step-by-Step setup
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 :-
- 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.
- 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).
- 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.
- Tomcat :-
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)
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" }
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
image 1.1 - fresh admin landing page
image 1.2 - existing created workspace on the landing page
- Or create a workspace with steps:
Click on Add Workspace or Add New Workspace (image 1.1) >> provide workspace name (example:- Develop) >> choose "banking" in product type (image 1.3)
image 1.3 - selecting the product type
- Import files:-
→ Choose workspace to be configured for RB and you’ll be ended with below landing page
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
image 1.5 - landing page of Manage Products
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
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)
image 1.8 - landing page of Manage Hooks
Stub Data Providing to RB using Microservice
Pre-Defined:-
Download RB Stub Bank Integration from artifactory on the location given below and move that to the location $TOMCAT_LOCATION/webapps from here
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
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" }
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 |
|
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
- Users can check for additional details on the account like account opening date, branch etc.
Detailed
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
System will request selection on the specific account, card or loan on which additional details are requested.
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 -
Configurations
Generic Configurations
The Following are the generic default configurations available with setup and are applicable for all channels.
- 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
- This property defines with the account types supported for Accounts qry-accountenquiry_SUPPORTED_ACCOUNT_TYPES=checking
- Supported account types are : savings,checking
- The order of listing accounts in Balance Inquiry. ACCOUNT_CATEGORY_SORT_ORDER=casa, creditcard
- The values are to be in sync with whatever configured for qry-accountenquiry_ACCOUNT_CATEGORIES.
- Sort and list the accounts based on their balances. SORT_ACCOUNTS_BY_HIGH_BALANCE=yes
- Set it to 'no' if need to show the accounts as received from API.
- 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)
- Based on the requirement all the attributes can be enabled by appending to the following property. qry-accountenquiry_SUPPORTED_MODIFIERS=statementbalance,minimumpayment
- 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
- 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'
- 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
- 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
- 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
- Do we have multiple api for individual productType or one api to fetch all poroductType summaries IS_MULTIPLE_API_CALL_FOR_GET_ACCOUNTS=false
- 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
- 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
- other supported products are,LOAN,CREDIT_CARD,DEBIT_CARD,DEPOSIT. Replacing the product name with ACCOUNT, will be fetching details accordingly.
- 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
- 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.
- 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
- 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
Fig 1 Savings Account
Fig 2 Checking Account
Fig 3 Credit Card
Fig 4 Debit Card
Fig 5 Loan Account
Fig 6 Deposit Account
Fig 7 OverDraft Account
Fig 8 Prepaid Card
Fig 9 Forex Card
Response Customisation
Generic
- 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
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
User can request for activation of a new or blocked card
If the card is in inactive or blocked status it will be activated.
Detailed
User can request for activating a debit or credit card in their possession.
Typically users will be required to activate their new or re-issued cards before they can use.
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
Facebook Flow -
Sample utterances that work as per the flow
- Activate my card
- Activate my card ending with 1234 (valid card number).
- Activate my visa card (only 1 visa card).
- Activate my card ending with 0000(invalid card number).
- Activate my master card (more than 1 card exists).
Configuration
Generic Configuration
- Different product categories supported in Activate Card, as configured the supported categories are Credit Card, Debit Card and Forex Card. Ex:- If ‘Prepaid Card’ need to be supported, the same need to appended as ‘prepaidcard’
- cardactivation_ACCOUNT_CATEGORIES=creditcard,debitcard,forexcard
- List all cards based on the supported card status, the default value is ‘Issued’ to list only Issued cards. Other supported Statuses are ‘Inactive’, ‘Active’, ’Closed’.
- txn-cardsettings_cardactivation_SUPPORTED_STATUS=ISSUED
- No. of cards to show on the list. The default carousel view is supported, can be changed to list by updated the template. The template details are detailed below.
- cardactivation_NO_OF_ITEMS_TO_SHOW_IN_LIST=10
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
Request URL: - http://one-api.active.ai/banking-integration/v1/{customerId}/cards/{cardNumber}/activation/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:
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
- Pre requirement- Cards(Debit/Credit Card) APIs should already be integrated.
Writing custom service and invoking in the camel route:-
- You can directly call your API from the integration camel by following the below steps.
- Go to that route id.
- Check for the API URL and change it by your API URL and map the response accordingly.
- Check for property and route to fetch card activation status ACTIVATION_CARD_ROUTE_URI=direct:get.activation.card.response.
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.
Figure 1.1
Figure 1.2
Using Workflow webhook
- You can directly call your API using a workflow webhook and customize your response.
Response Customisation
Messages
- Kindly refer messages for this use case on admin by selecting respective category (Card Activation). ### Templates
- Kindly refer Templates for this use case on admin by selecting a category (Card Activation). 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
- cardactivation_ALL_ACCOUNTS_TEMPLATE_ID=CardActivationAllAccounts
- When all cards list to be shown as list and list size>4 and show more is enabled.
- cardactivation_ACCOUNTS_WITH_SHOW_MORE_TEMPLATE_ID=CardActivationAccountsWithShowMore
- When all cards in the list need to be displayed for selection, after clicking show more button.
- cardactivation_ACCOUNTS_SHOW_MORE_REQ_TEMPLATE_ID=CardActivationAccountsWithShowMore
- When the list contains only one card. Default is a card template
- cardactivation_SINGLE_ACCOUNT_TEMPLATE_ID=CardActivationAcctSelection
- Shows a list of cards in case of a card number mismatch scenario. The default is a carousel.
- cardactivation_ACCT_SELECT_TEMPLATE_ID=CardActivationAccountMismatch
- When all cards list to be shown as list and list size>4 and show more is enabled.
- cardactivation_ACCT_SELECT_WITH_SHOW_MORE_TEMPLATE_ID=CardActivationAccountsWithShowMore
Hooks or Fulfilments
- Kindly refer Hooks or Fulfilments for name(Card Activation) use case on admin as guided on here.
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 |
|
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
The user will be able to check the balance held in various products of the bank.
It will be possible to check the summary based on product type and also drill down to individual account details.
Alternatively, users can directly specify the account number to check balance details for a specific account relationship.
Detailed
User can view the balance details across their relationships with the financial institution.
User can mention a specific account or get the details by specifying a category (like loans, credit cards).
User can also view balances that they 'owe' (Liabilities) vs that they 'own' (Assets) i.e. their portfolio view.
- User can select a specific account, loan, card etc after expanding the category or portfolio view.
- The consolidated balance based on above grouping will be displayed.
User can retrieve balance details for an account by specifying partial details that identify one or more accounts
- ...account ending with '2678'
- ...certificate of deposits
- … 'Platinum' credit card or 'Premier' checking account
User can request for different types of balances applicable for that relationship
- ...outstanding amount on my credit card
- …minimum amount due on my credit card
- ...available balance on my savings account
Flow CX
Note: This can be flowchart / GIF or screenshot to represent OOTB flow
Facebook Flow -
Flow Templates
Template 1: (Default)
Show as Categorised → Select a Category → List of accounts → Select an Account → View Details → View Transactions
- Applicable/Suggested when more than 1 product category is required.
Template 2:
Show as Categorised → Select a Category → List of accounts → View Transactions
- Applicable/Suggested when more than 1 product category is required.
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.
- This property defines with all products that are supported in Balance Inquiry use-case
qry-balanceenquiry_ACCOUNT_CATEGORIES
Supported account Categories are : casa, creditcard, debitcard, loan, deposit, overdraft, forexcard
This property defines with the account types supported for Accounts
qry-balanceenquiry_SUPPORTED_ACCOUNT_TYPES=checking
Supported account types are : savings,checking
The order of listing accounts in Balance Inquiry.
ACCOUNT_CATEGORY_SORT_ORDER=casa, creditcard
The values are to be in sync with whatever configured for qry-balanceenquiry_ACCOUNT_CATEGORIES.
Sort and list the accounts based on their balances.
SORT_ACCOUNTS_BY_HIGH_BALANCE=yes
Set it to 'no' if need to show the accounts as received from API.
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)
- Based on the requirement all the attributes can be enabled by appending to the following property.
qry-balanceenquiry_SUPPORTED_MODIFIERS=statementbalance,minimumpayment
- Following property is to tell bot wrt attribute responses, whether need to be as a Template or Text response.
qry-balanceenquiry_RESPONSE_TYPE=TEMPLATE
Supported values : TEMPLATE or TEXT
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
Supported boolean values are 'true' or 'false'
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
- 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
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
Do we have multiple api for individual productType or one api to fetch all poroductType summaries
IS_MULTIPLE_API_CALL_FOR_GET_ACCOUNTS=false
- 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
- 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
other supported products are,LOAN,CREDIT_CARD,DEBIT_CARD,DEPOSIT. Replacing the product name with ACCOUNT, will be fetching details accordingly.
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
- 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.
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
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
- 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
}
}
- 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
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 |
|
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
Users can make bill payments for various types of bills including credit cards.
Bills of registered billers and credit cards can be paid.
Detailed
Users can express interest in paying their bills.
System will check for previous records and suggest preferred account from which bill needs to be paid.
Users can choose any other account of their choice, if not going with the suggested account.
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
Registered
- Other Billers(Default) Pay bills for registered ones like Electricity bills, mobile bills, gas bills
- Credit Card Payment(Default)
Non-Registered Billers
- Other Billers(need to configure)
- Credit Card Payment(need to configure)
Flow CX
Note: This can be flowchart / GIF or screenshot to represent OOTB flow
Facebook Flow -
Sample utterances that work as per the flow
- Pay bill
- Pay Water Bill
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
- 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 the base.
- Below is the list of RB properties needs to be altered to point it to your own integration camel-
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
Fig 1.1 BillPaymentRequest
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
Fig 1.3 PayeeResponse
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
- need to add template properties
Kindly refer Templates for this use case on admin by selecting a category (like Bill Payment
,Transaction Common) as shown here
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 |
|
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
The user will be able to block a debit or credit card
They can specify the card number that has to be blocked or choose from a list
Block type can be temporary or permanent subject to API availability
Detailed
User whose debit or credit card is lost, stolen or damaged may ask for their card to be blocked.
User can simply say ‘block card’ OR specify a card that needs to be blocked.
- 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
- If user has specified the card number for blocking, system would proceed to block card flow
Next user will be prompted to input card block type
- Temporary, OR
- Permanent
If the card is not in blocked status , system will proceed to block the card after user confirmation
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
Facebook Flow -
Sample utterances that works as per the flow
Block my card ending with 1234 (valid card number)
Block my visa card (only 1 visa card)
Block my card ending with 0000 (invalid card number)
Block my master card (more than 1 card exists)
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
- 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| |||||
- 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.
- 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-
- 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
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 |
|
Entities |
|
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
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.
Typically for enablement a data range for usage will be sought.
Detailed
If user is traveling out of the country, they can request to activate their card for international usage.
Post card selection system will expect data range (from- to ) for activation.
- any additional step like country/region for travel can be customised.
- 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
Facebook Flow -
Sample Utterance
Sample utterances that work as per the flow:-
Change International Usage of my card
Change International Usage of my card ending with 1234 (valid card number).
Change International Usage of my visa card (only 1 visa card).
Change International Usage of my card ending with 0000 (invalid card number).
Change International Usage of my master card (more than 1 card exists).
Configuration
Generic Configuration
internationalusage_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 ‘Inactive’, ‘Issued’, ’Closed’. txn-cardsettings_internationalusage_SUPPORTED_STATUS=ACTIVE txn-productclosure_internationalusage_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. internationalusage_NO_OF_ITEMS_TO_SHOW_IN_LIST=10
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.
Check for property INTERNATIONAL_USAGE_ROUTE_URI value.
Go to that route id.Check for the API URL and change it by your API URL and map the response accordingly.
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 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
The user will be able to order Cheque book
They can specify the account number to order Cheque book
They can ordered cheque book on permanent and business address
Detailed
For Ordering the Cheque Book, we need to give some utterances
- “Order cheque book”
- “Request cheque book”
After the utterance, Order Cheque Book, select the casa account for ordering the cheque book
Select the address --> permanent and business address
Confirm the details
Enter the OTP
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
Order Cheque Book
Order Cheque book for acc number 1234(incorrect number)
Order Cheque Book for acc number 2016(correct number)
Configurations
Generic Configurations
Different product categories supported in Order Cheque Book, as configured the supported categories are CASA Accounts. Ex:- If ‘Checking Account’ need to be supported, the same need to to txn-issuechequendd_ACCOUNT_CATEGORIES=casa
No. of Accounts to show in the list. Default list view is supported, can be changed to carausal by updated the template. Template details are detailed below. txn-issuechequendd_NO_OF_ITEMS_TO_SHOW_IN_LIST=10
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-
Accounts APIs should already be integrated.
Service API to integrate with Bank API
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 |
|
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
The user can request for converting high value transactions to installment payment plan.
They can choose from eligible transactions and proceed for conversion.
Payment plan will be presented for user selection.
Detailed
User may wish to defer high value credit card transactions and pay in installments.
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.
For the selected transactions , user will be presented with the payment plan (installment options) to choose from say 3 months, 6 months etc.
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
Facebook Flow -
Sample Utterance
Sample utterances that work as per the flow:- - Convert Transactions to Installments of my card.
Convert Transactions to Installments of my card ending with 1234 (valid card number).
Convert Transactions to Installments of my visa card (only 1 visa card).
Convert Transactions to Installments of my card ending with 0000 (invalid card number).
Convert Transactions to Installments of my master card (more than 1 card exists).
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
- To fetch the API of credit and debit cards list, refer to the Balance Inquiry Documentation.
- To fetch the API of Transaction, refer to the Transaction History Documentation.
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.
Check for following properties-Route to fetch EMI plans CONVERT_EMI_ROUTE_URI=direct:rb:bank.convertemi.options.stub
Route to fetch convert EMI Status CONVERT_EMI_STATUS_ROUTE_URI=direct:retail.banking.convert.emi.final.api.stub
Go to that route id. Check for the API URL and change it by your API URL and map the response accordingly.
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
When all cards list to be shown and list size<4. Default is carousel template convertemi_ALL_ACCOUNTS_TEMPLATE_ID=EmiAllAccountSelection
When all cards list to be shown as list and list size>4 and show more is enabled. convertemi_ACCOUNTS_WITH_SHOW_MORE_TEMPLATE_ID=CardsWithShowMore
When all cards in the list need to be displayed for selection, after clicking show more button convertemi_ACCOUNTS_SHOW_MORE_REQ_TEMPLATE_ID=CardsWithShowMore
When list contains only one card. Default is card template convertemi_SINGLE_ACCOUNT_TEMPLATE_ID=SingleCardSelection
Shows list of cards in case of card number mismatch scenario. Default is a carousel template. convertemi_ACCT_SELECT_TEMPLATE_ID=EmiAllAccountSelection
When all cards list to be shown as list and list size>4 and show more is enabled. convertemi_ACCT_SELECT_WITH_SHOW_MORE_TEMPLATE_ID=CardsWithShowMore
When all transactions needs to be shown and list size<4. Default is list template convertemi_LIST_TEMPLATE=EMITransactionListShowMore
When all transactions needs to be shown, llist size>4 and show more is enabled. Default is list template convertemi_SHOWMORE_LIST_TEMPLATE=EMITransactionListShowMore
When static emi plans to be displayed. convertemi_static_OPTION_TEMPLATE = EMIOptionsTemplate
When emi plans are fetch dynamically convertemi_dynamic_OPTION_TEMPLATE = EMIDynamicOptionsTemplate
Hooks or Fulfilments
- Kindly refer Hooks or Fulfilments for name(Installment Conversion) use case on admin as guided on here.
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 |
|
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
The user will be able to pay their credit card dues
It can be user specified amount or any of the supported options like total amount due, minimum amount due, total outstanding
Detailed
User can express interest in paying credit card bill.
User needs to confirm account from which the payment will be effected (if more than one account exists)
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.
For the selected card system will display payment options provided by API like
Statement amount i.e. total amount due
Minimum amount due
Total outstanding (including un-billed)
User specified amount
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.
System will provide success/failure confirmation, based on payment API response.
Flow CX
Flows supported for Card Payment
From Fund Transfer Flow (Need to Configure)
From Bill Payment Flow (Default)
Card Payment Flow (Default)
Others
- Adhoc Card Payment Flow (Need to Configure)
- Adhoc Card Payment Flow (Need to Configure)
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
Facebook Flow -
Functionality Flow (Transfer → Card Payment)
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
Functionality Flow (Bill Payment → Card Payment )
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
Sample utterances that work as per the flow
Pay my Credit Card bill
Pay bill of my Credit Card for card ending with 1234( invalid)
Pay bill of my Credit Card for card ending with 9123(valid)
Pay bill of my Credit Card from account ending with 8907(valid acc no)
Pay bill of my Credit Card from account ending with 1255(invalid acc no)
Transfer (Initiating card payment from Fund Transfer flow)
Pay bill(Initiating card payment from bill payment 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
- Microservices provided by RB(Banking-Integration)
* Here only default flows can be integrated
* The explanation for basic details were given here
- 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
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 the base.
Below is the list of RB properties needs to be altered to point it to your own integration camel-
Card payment via Fund Transfer flow
- CARD_PAYMENT_PREPROCESS_URI=direct:rb.demobank.stub.cardpayment.confirm.api
Default Card Payment flow
- CARD_PAYMENT_CONFIRM_URI=direct:rb.demobank.stub.cardpayment.confirm.api
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.
Figure 1.1
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 |
|
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
User can view the transaction history their accounts
User can download the transaction details for their accounts
View/download/sharing of transaction history is available for current month, last moth and the species date range.
User can also send the transaction details to their registered email id.
Supported formats to download is pdf, csv and excel.
Detailed
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.
User can simply say ‘download statement’.
- User will be asked to login.
- Post login success account selection step will come.
- On selection the account user will be asked to select the last month/current month/ enter the date range option to download the statement.
- If user selects the last month or current month then option appears to select the supported format.
- If user selects the date range then space range in format dd-mm-yyyy must be entered by user for example 12-12-2020.
- 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.
Facebook Flow
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 |
|
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
User can transfer funds between their accounts
User can send money to their registered payees within their bank and also other banks
One time (ad hoc) transfer without payee registration is possible
Transfer to peers using mobile number or supported identifiers is possible
Scheduling a transfer for a future date and making it a recurring instruction is possible
In terms of personalisation, system supports
- repeating a past /favourite transfer, and
- preempts debit account selection based on past transactions
Detailed
User can initiate a transaction by saying
- comprehensive - ‘transfer 500 $ to Jack from acc ending 5012’
- simple - ‘pay Jack’ OR ‘send money’ etc
System will ask debit account selection if more than one account exists.
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
- own account - user’s own accounts with the FI
- same bank account - payees of user who have account in same FI
- other bank account - payees of user who hold account in other FI
- one time / adhoc - transfer without registering as payee
Once type is selected, user will be asked to select specific payee if more than one exists for the selected category.
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)
Once the source and target accounts are established, the transaction amount should be input by the user if not originally specified.
System will provide option to schedule the payment for a future date or set up recurring instruction.
Before final confirmation user can add a ‘remark’ to the transaction , which will be used in statements to describe the transaction.
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. 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
- Registered Payee (Default)
- One-time transfer (Default)
Other bank transfer
- Registered Payee (Default)
- One-time transfer (need to configure)
Self/Own account
- Own accounts (Default)
- Other Categories
Quick Pay (need to configure)
- Email-id & payee name
- Mobile number & payee name
Via UPI ID(need to configure)
- Via MMid(need to configure)
Sample CX for default flow
Note: This can be flowchart / GIF or screenshot to represent OOTB flow
Facebook Flow -
Flow chart:-
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
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=yesif the below is set to no it will silently save the account without asking for confirmation
AFTER_TRANSFER_ASK_SAVE_DEBIT_ACCOUNT_SINGLE_ACCOUNT=noafter 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})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 enquiryShow 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=falseShow 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=noShow Transfer Types
- Transfer type will show based on amount entered and limit of amount for each type as specified in rule and vice versa(based on selected transfer types need to give amount else will ask for valid amount in the valid range) this will work based on place of transferType filter
- By Default we are not supporting transfer type to be shown on any of the templates
-> 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
- 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
- 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
- Auto Pay
- Need to add required routes
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
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
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.mismatchEnabling 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=yesEnabling 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=MMIDEnabling 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_PAYTransaction 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=5Transaction Error
Prefix to fetch error code as described below
txn-moneymovement_TRANSACTION_TYPE_HANDLE_ERROR=TRANSFERcontinue 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_ACCOUNTSTransaction Status(Final Api call)
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 happenExamples:-
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.apiEXTERNAL_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.apiOther
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
- capturing entities from cmm. aimodel (both from entities and payload)
- performing validation of user entered text (validation supported is static and dynamic)
- setting the validated entities in the respective dialogModel
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
- Microservices provided by RB(Banking-Integration)
- Here only default flows can be integrated
- Explanation for basic details were given heremicroservice doc
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)
Fig 1.1 FundTransferRequest
Fig 1.2 FundTransferResponse
Fig 1.3 PayeeRequest
Fig 1.4 PayeeResponse
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)
Fig 1.6 PayeeValidationRequest
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 |
|
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
- User can liquidate a fixed deposit and credit one of their account with the proceeds.
Detailed
User can request to close their term deposit.
Post deposit selection, system will ask to choose account to be credited if more than 1 eligible account exists
System will provide template for user confirmation, in terms of total amount to be credited and the fees if any
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
Facebook Flow -
Sample Utterance
Sample utterances that work as per the flow:-
- Close Fixed Deposit
- Close Fixed Deposit of Acc. No. ending with 1234 (valid account number).
- Close Fixed Deposit of Acc. No. ending with 0000 (invalid account number).
Flow Chart
Configuration
Generic Configuration
Different Account categories supported in Liquidate Fixed Deposit, as configured the supported categories are ‘Deposit’.Other Supported Account Categories are ‘CASA’, ‘Loan’. liquidatedeposit_ACCOUNT_CATEGORIES=deposit
Modifiers which we are supporting for Liquidate fixed Deposit, They are:- liquidatedeposit_SUPPORTED_MODIFIERS=minimumpayment,minpayment,outstandingbalance,currentbalance,latestbalance,duedate,expirydate,rewardpoints,rewardpoint,totalbalance,closingbalance,ledgerbalance,floatbalance,holdbalance,dueamount,accountopened,loyaltypoint,didiuse,caniuse,availablelimit,totallimit,minimumdue,mindue,lastpaymentamount,lastpaymentdate,cash,money,fund,networth,worth,portfolio,debt,liability,liabilities,asset,lastmonthbill,lastmonthdue,ifsccode,basebranch,branch,nominee,primary,tenure,interestrate,howmanyinstallments,installmentamount,enddate,emiamount,accountopening,outstanding,rateofinterest,maturitydate,whencaniwithdraw,maturityamount,maturityinstruction,startdate,accumulatedinterest,renewaldate,cumulativeamount,expire,expired,expiring,expiry,currentmonthbill,presentamount,overdraftledgerbalance
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
When all accounts to be shown as list and list size<4.
Default is list template, to change to carousel using template editor liquidatedeposit_ALL_ACCOUNTS_TEMPLATE_ID=CloseDepositAccountListWhen all accounts to be shown as a list, list size>4 and show more is enabled. Default is list template liquidatedeposit_ACCOUNTS_WITH_SHOW_MORE_TEMPLATE_ID=CloseDepositShowMoreAccountList
When all accounts in the list should be displayed, after clicking show more button liquidatedeposit_ACCOUNTS_SHOW_MORE_REQ_TEMPLATE_ID=CloseDepositShowMoreAccountList
When list contains only one account. liquidatedeposit_SINGLE_ACCOUNT_TEMPLATE_ID=CloseDepositSingleAccountList
Shows list of accounts in case of account number mismatch scenario. Default is a list. liquidatedeposit_ACCT_SELECT_TEMPLATE_ID=CloseDepositAccountList
When all accounts to be shown as a list with account details and list size>4 and show more is enabled. liquidatedeposit_ACCT_SELECT_WITH_SHOW_MORE_TEMPLATE_ID=CloseDepositWebViewAccountList
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 |
|
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
User can request to enter logged in session to perform transactions and log service requests or inquiries.
User can authenticate themselves by providing their credentials including USER ID, Password.
- Based on bank support 2FA (OTP) can be enabled.
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
- Internet Banking Credentials
- Credit Card login
- Debit Card login
- Mobile Banking PIN
- Mobile Banking Pattern
- OAuth
Internet Banking Credentials (Using Username and Password) (Default)
Web Template with
- User Id / Login Id
- Password
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
- Card Number
- Expiry Date
- CVV
- Date of birth
The encrypted values are sent to the backend to validate with bank APIs.
Debit Card login
Webview template with
- Card Number
- Expiry Date
- CVV
- ATM PIN
The encrypted values are sent to the backend to validate with bank APIs.
Mobile Banking PIN
Webview template with
- MPIN
The encrypted values are sent to the backend to validate with bank APIs.
Mobile Banking Pattern
Webview template with
- Pattern (Swiped on the screen is converted to a keycode based on the library shared by the bank)
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
- 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"]
}
- 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)
Response Customization
Messages
Kindly refer messages for this use case on admin by selecting respective category ( like Login) as shown here
Templates
- Kindly refer Templates for this use case on admin by selecting a category (like Login) as shown here
- You can customize login success templates on RB-login-success-template fulfilments using the template editor.
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 |
|
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
User can invest in a fixed deposit.
User can specify details for which deposit should be booked.
Deposit will be booked online (subject to API availability).
Detailed
User will be able to book a deposit by saying something like ‘Open a deposit for 50k dollars’
System will prompt funding account selection step, if more than one account exists for the user.
Once user specified the account, the amount to be invested in deposit will be sought, if not provided initially
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).
User can select or input tenor and proceed to confirmation step.
Post confirmation of the initial details, system will prompt nominee details input as per configuration. User can choose from
- existing nominee OR
- new nominee
Subsequently, user can proceed to accept the ‘terms & conditions’ (configurable) to proceed with booking the deposit.
A 2FA step like OTP(default) can be configured at this point.
Based on API availability, the user will be provided
online - deposit reference number as a confirmation of booking, OR
offline - request number and turn around time for opening the deposit.
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
Facebook Flow -
Sample Utterance
- Sample utterances that work as per the flow
- Open Fixed Deposit
- Open Fixed Deposit of Acc. No. ending with 1234 (valid account number).
- Open Fixed Deposit of Acc. No. ending with 0000 (invalid account number).
Flow Chart
Configuration
Generic Configuration
Different Account categories supported in Liquidate Fixed Deposit, as configured the supported categories are ‘CASA’..Other Supported Account Categories are ‘Deposit’, ‘Loan’. openfd_ACCOUNT_CATEGORIES=casa
Modifiers which we are supporting for Liquidate fixed Deposit, They are:- openfd_SUPPORTED_MODIFIERS=minimumpayment,minpayment,outstandingbalance,currentbalance,latestbalance,duedate,expirydate,rewardpoints,rewardpoint,totalbalance,closingbalance,ledgerbalance,floatbalance,holdbalance,dueamount,accountopened,loyaltypoint,didiuse,caniuse,availablelimit,totallimit,minimumdue,mindue,lastpaymentamount,lastpaymentdate,cash,money,fund,networth,worth,portfolio,debt,liability,liabilities,asset,lastmonthbill,lastmonthdue,ifsccode,basebranch,branch,nominee,primary,tenure,interestrate,howmanyinstallments,installmentamount,enddate,emiamount,accountopening,outstanding,rateofinterest,maturitydate,whencaniwithdraw,maturityamount,maturityinstruction,startdate,accumulatedinterest,renewaldate,cumulativeamount,expire,expired,expiring,expiry,currentmonthbill,presentamount,overdraftledgerbalance
Format for the Tenure of the Deposit Plans are configured as ‘Days’:- TENURE_FORMAT=days
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.
Check for below property values- DEPOSIT_PLANS_ROUTE_URI = direct:product.apply.deposit.plans.stub.tenure.value NOMINEE_ROUTE_URI = direct:fd.get.nominee.details OPEN_FD_FINAL_API_ROUTE_URI=direct:fd.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
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.
Figure 1.1
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
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
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
When all accounts in the list should be displayed, after clicking show more button openfd_ACCOUNTS_SHOW_MORE_REQ_TEMPLATE_ID=FDOpenShowMoreAccountList
When list contains only one account. openfd_SINGLE_ACCOUNT_TEMPLATE_ID=FDOpenSingleAccountList
Shows list of accounts in case of account number mismatch scenario. Default is a list. openfd_ACCT_SELECT_TEMPLATE_ID=FDOpenAccountList
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
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 |
|
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
Card replacement /reissue can be requested by the user over conversation.
User has to provide the card number as reference for reissue.
Detailed
User can request for re-issue of their card.
System will proceed to card selection step, if more cards exist for user.
If the card selected is in ‘blocked/inactive’ status, system will proceed to confirmation step for re-issue
If the card is active, system will check if user wants to block the card ahead of re-issue.
The re-issued card can be dispatched to one of the addresses supported as per configuration.
Once user selects address type, user has to confirm the reissue request.
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
Facebook Flow -
Sample Utterance
Sample utterances that work as per the flow:-
- Replace my card
- Replace my card ending with 1234 (valid card number).
- Replace my visa card (only 1 visa card)
- Replace my card ending with 0000 (invalid card number).
- Replace my master card (more than 1 card exists).
Configuration
Generic Configuration
Different product categories supported in Block Card, as configured the supported categories are Credit Card, Debit Card & Forex Card. Ex:- If ‘Prepaid Card’ need to be supported, the same need to appended as ‘prepaidcard’ replacecard_ACCOUNT_CATEGORIES=creditcard,debitcard,forexcard
List all cards based on the supported card status, default value is ‘Active’ and ‘Blocked’ to list Active and Blocked cards. Other supported Status are ‘Inactive’, ‘Issued’, ’Closed’. txn-productapply_replacecard_SUPPORTED_STATUS=BLOCKED,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. replacecard_NO_OF_ITEMS_TO_SHOW_IN_LIST=10
Different types of address supported for sending the replaced cards, they are ‘Personal’ and ‘Business’. replacecard_SUPPORTED_ADDRESS_TYPES=personal,business
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.
Check for property value- Route to fetch replace card status REPLACE_CARD_CONFIRM_ROUTE_URI=direct:get.replacecard.confirm.response
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 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
When all cards list to be shown and list size<4. Default is carousel template replacecard_ALL_ACCOUNTS_TEMPLATE_ID=ReplaceCardAccounts
When all cards list to be shown as list and list size>4 and show more is enabled. replacecard_ACCOUNTS_WITH_SHOW_MORE_TEMPLATE_ID=ReplaceCardAccountsWithShowMore
When all cards in the list need to be displayed for selection, after clicking show more button replacecard_ACCOUNTS_SHOW_MORE_REQ_TEMPLATE_ID=ReplaceCardAccountsWithShowMore
When the list contains only one card. Default is a card template replacecard_SINGLE_ACCOUNT_TEMPLATE_ID=ReplaceCardAccounts
Shows list of cards in case of card number mismatch scenario. Default is a carousel. replacecard_ACCT_SELECT_TEMPLATE_ID=ReplaceCardAccountMismatch
When all cards list to be shown as list and list size>4 and show more is enabled. replacecard_ACCT_SELECT_WITH_SHOW_MORE_TEMPLATE_ID=ReplaceCardAccountsWithShowMore
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 |
|
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
- PIN reissue can be done online over a conversation.
Detailed
User can request for re-issue of their card PIN.
System will proceed to card selection step, if more cards exist for user.
The user will be shown PIN reissue form to reset PIN
- User needs to enter new PIN and confirm by re-entering the PIN
User will need to confirm the PIN change
Request reference will be shown to user, based on API response.
Flow CX
- Default Flow : List of Cards -> Enter New Pin -> WebPage for Entering Pin -> Confirm the Pin -> Enter Otp -> Reset Pin Status.
Note: This can be flowchart / GIF or screenshot to represent OOTB flow
Facebook Flow -
Sample utterance
- Sample utterances that work as per the flow:-
- Reset Pin of my card
- Reset Pin of my card ending with 1234 (valid card number).
- Reset Pin of my visa card (only 1 visa card).
- Reset Pin of my card ending with 0000 (invalid card number).
- Reset Pin of my master card (more than 1 card exists).
Configuration
Generic Configuration
Different product categories supported in Reset Pin Card, as configured the supported categories are Credit Card, Debit Card & Forex Card. Ex:- If ‘Prepaid Card’ need to be supported, the same need to appended as ‘prepaidcard’
resetpin_ACCOUNT_CATEGORIES=creditcard,debitcard,forexcard
List all cards based on the supported card status, the default value is ‘Active’ to list only Active cards. Other supported Statuses are ‘Inactive’, ‘Issued’, ’Closed’.
txn-pinsettings_resetpin_SUPPORTED_STATUS=ACTIVE
No. of cards to show on the list. The default carousel view is supported, can be changed to list by updated the template. The template details are detailed below.
resetpin_NO_OF_ITEMS_TO_SHOW_IN_LIST=10
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
- Request URL: - http://one-api.active.ai/banking-integration/v1/{customerId}/cards/{cardNumber}/resetPin/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",
"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.
Check for property value .The route to fetch reset pin status RESET_PIN_CONFIRM_ROUTE_URI=direct:get.resetpin.confirm.response
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 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
- Kindly refer messages for this use case on admin by selecting respective category (Reset Pin)
- Customization of Image Properties:- Images of Cards for Cards List. Please check** here.
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
- User can inquire on transaction history in a number of ways including date range, amount criteria etc.
Detailed
- User expresses interest in checking transaction history for an account
- 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
- User can also specify filter criteria in terms of the transaction details like -
- last ‘n’ debits
- Credits in last week
- Specify transaction details in terms of transaction amount , merchant etc
- 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
Sample Utterances-
- Show my account txns
- Show txns for my Credit Card
- Show txns for acc ending with 1022 (valid/ invalid)
Show txns for card ending 1111 (valid/ invalid)
Configurations
Generic Configurations
Different Account categories supported for transaction history, as configured the supported categories are Current Account & Savings Account and Credit Card. qry-transaction-history_ACCOUNT_CATEGORIES=casa, creditcard
Which keys to read from cache qry-transaction-history_cachekeys=accounts,context,accpayload,payeepayload,billers,billerpayload
Once modifiers are processed then to decide on how the response type to be qry-transaction-history_RESPONSE_TYPE=TEMPLATE
Supported modifiers for transaction history qry-transaction-history_SUPPORTED_MODIFIERS=lasttransaction
The pattern in which transaction dates to be displayed. Default is yyyy-MM-dd, which can be changed to MM-dd-yyyy or dd-MM-yyyy TXN_DATE_PATTERN=yyyy-MM-dd
Show more and be enabled / disbaled by making property value true or false qry-transaction-history_IS_ACCOUNT_SHOW_MORE_SUPPORTED=yes
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
- Microservices provided by RB(Banking-Integration)
- Here only default flows can be integrated
- Explanation for basic details were given heremicroservice doc
- 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.
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-
TRANSACTION_ROUTE_URI =direct:demobank.stub.getTransactions
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.
Figure- 1.1 TransactionInquiryRequest
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 |
|
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
Debit card limit update can be requested by user via chat.
User can choose relevant limit type and provide new limit.
Detailed
User says ‘Update card limit’ or ‘Update domestic ATM limit on card 2768 to 20000’
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.
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
Domestic ATM withdrawal limit
Domestic purchase
International ATM withdrawal limit
International purchase.
User can choose to modify and provide the new limit within acceptable range and proceed for confirmation.
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
Facebook Flow -
Sample Utterances
Sample utterances that work as per the flow:-
Update Limit of my card
Update Limit of my card ending with 1234 (valid card number).
Update Limit of my visa card (only 1 visa card).
Update Limit of my card ending with 0000 (invalid card number).
Update Limit of my master card (more than 1 card exists).
Configuration
Generic Configuration
Different product categories supported in Update Limit of Card, as configured the supported categories are Credit Card, Debit Card. Ex:- If ‘Prepaid Card’ need to be supported, the same need to appended as ‘prepaidcard’ debitlimitchange_ACCOUNT_CATEGORIES = debitcard,creditcard
List all cards based on the supported card status, the default value is ‘Active’ to list only Active cards. Other supported Statuses are ‘Inactive’, ‘Issued’, ’Closed’. debitlimitchange_FILTER_CARD_STATUS=ACTIVE
No. of cards to show on the list. The default carousel view is supported, can be changed to list by updated the template. The template details are detailed below. debitlimitchange_NO_OF_ITEMS_TO_SHOW_IN_LIST=10
Different types of Limits supported for Credit Cards, as configured the supported categories are ‘Cash Limit’ and ‘Credit Limit’ creditcard_supported_limit_types=cash,credit
Different types of Limits supported for Debit Cards, as configured the supported categories are ‘Domestic ATM Limit’, Domestic Purchase Limit’,’International ATM Limit’, ‘International Purchase Limit’. debitcard_supported_limit_types=domesticatm,domestic purchase,international atm,international purchase
Customisation
Integration Customisation
Pre-Requirement
To fetch the API of credit and debit cards list, refer to the Balance Inquiry.
To fetch the API of Transaction, refer to the Transaction History Documentation.
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
At the end of the Limit Change flow, the request object is sent to the configured API using which bank API can be integrated with and response should be mapped with card limit response object.
You can directly call your API from integration camel by following below steps-Check for below properties according to the flow-
- Route to fetch Debit Card limits - DEBIT_CARD_LIMIT_ROUTE_URI=direct:get.current.debit.limit.response
- Route to fetch Credit Card limits - CREDIT_CARD_LIMIT_ROUTE_URI=direct:get.current.credit.limit.response
- Route to fetch Debit Card limit Status - DEBIT_CARD_LIMIT_CONFIRM_ROUTE_URI=direct:get.current.debit.limit.confirm.response
- Route to fetch Credit Card limit Status - CREDIT_CARD_LIMIT_CONFIRM_ROUTE_URI=direct:get.current.credit.limit.confirm.response
Go to that route id.
Check for the API URL and change it by your API URL and map the response accordingly.
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 (Debit Limit)
Customization of Image Properties
- Customize images on each Cards as described here
Templates
Kindly refer Templates for this use case on admin by selecting a category (Debit Limit)
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 debitlimitchange_ALL_ACCOUNTS_TEMPLATE_ID=DebitLimitChangeAccounts
- Shows a list of cards in case of a card number mismatch scenario. The default is a carousel. debitlimitchange_ACCT_SELECT_TEMPLATE_ID=DebitLimitChangeAccounts
- When all cards list to be shown as list and list size>4 and show more is enabled. debitlimitchange_ACCOUNTS_WITH_SHOW_MORE_TEMPLATE_ID=DebitLimitChangeAccountsWithShowMore
- When all cards in the list need to be displayed for selection, after clicking show more button debitlimitchange_ACCOUNTS_SHOW_MORE_REQ_TEMPLATE_ID=DebitLimitChangeAccountsWithShowMore
- When the list contains only one card. Default is card template debitlimitchange_SINGLE_ACCOUNT_TEMPLATE_ID=DebitLimitChangeAccounts
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
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 |