0% found this document useful (0 votes)
2 views12 pages

API User Manual

The RBI Dissemination API User Manual outlines the process for Reporting Entities to enroll and utilize the FRBS API Channel for automated communication with the CIMS application. It details the API enrollment process, prerequisites, and how to securely call the RESTful APIs, including encryption methods and sample requests. Additionally, it provides contact information for support and answers to frequently asked questions regarding API usage and access limitations.

Uploaded by

Akash Khonde
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views12 pages

API User Manual

The RBI Dissemination API User Manual outlines the process for Reporting Entities to enroll and utilize the FRBS API Channel for automated communication with the CIMS application. It details the API enrollment process, prerequisites, and how to securely call the RESTful APIs, including encryption methods and sample requests. Additionally, it provides contact information for support and answers to frequently asked questions regarding API usage and access limitations.

Uploaded by

Akash Khonde
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

DEPARTMENT OF STATISTICS AND

RESERVE BANK OF INDIA BANK API USER MANUAL

INFORMATION MANAGEMENT

RESERVE BANK OF INDIA


Oct 2024

RBI Dissemination API User Manual

DEPARTMENT OF STATISTICS AND INFORMATION MANAGEMENT 1


RESERVE BANK OF INDIA BANK API USER MANUAL

Table of Contents
1. About FRBS API Channel ...................................................................................................................... 3
2. API Enrollment Process Flow ............................................................................................................... 3
3. API Enrollment by Reporting Entities .................................................................................................. 4
4. API prerequisites: ................................................................................................................................. 5
5. How to Call the RESTful RBI APIs ......................................................................................................... 5
6. RSA and AES Encryption and Decryption Details ................................................................................ 5
8. API support -Contact Details ................................................................................................................ 8
9. Frequently Asked Questions (FAQs) .................................................................................................... 8

DEPARTMENT OF STATISTICS AND INFORMATION MANAGEMENT 2


RESERVE BANK OF INDIA BANK API USER MANUAL

1. About FRBS API Channel

API Channel is used by Reporting Entities to automate the features that are present in the portal without
having to log into the portal. These are RESTful Java APIs will be used by the systems of the Reporting
Entities to communicate with the CIMS application using JSON without human intervention.

Figure 1:API Channel Overview

2. API Enrollment Process Flow

The process flow for API Channel is depicted below:

Figure 2: API Enrollment Flow Diagram

DEPARTMENT OF STATISTICS AND INFORMATION MANAGEMENT 3


RESERVE BANK OF INDIA BANK API USER MANUAL

3. API Enrollment by Reporting Entities

The process for API subscription is as follows:


1. The Reporting Entities will send an offline email with below details for API subscription to the RBI
email ID - cimsapisupport@[Link]:
a. Name of the API to be subscribed (LRS, CRILC, CFR)
b. 2-3 Public IP address of the system through which the entity will invoke the FRBS API for
necessary whitelisting at RBI end
c. Rate limit desired by the entity. (Max rate limit set is 99/minute)
d. Rate Limit Justification. This will be reviewed and set by RBI.
e. Email Id in which the entity desires the API’s Client Id/Client Secret to be sent after
approval from RBI.
2. RBI Admin will log the above provided details in the RBI CIMS system.
3. After RBI approval process, entities will receive an email with API’s Client Id/Client Secret.
4. These Client Id/Client Secret need to be sent by the entities as authentication request in each API
call.

Sample Email Request Form

Email Subject Request For: Liberalized Remittance Scheme


(LRS)
Email Body Dear Sir/Madam,

<<Entity Name>> would like to request for


subscription for Liberalized Remittance Scheme
(LRS)

Public IP Address: [Link]


Desired Rate Limit: 50
Rate Limit Justification: We would like to
request the above rate limit due to the high
number of enquiries observed this year.
Email Id For communication:
bank_name@[Link]

b. We herewith confirm that the designated


server/infrastructure setup by <<Entity Name>>
to consume API and public IP addresses are as
follows for necessary whitelisting:
 Public IP address1

Email Signature Thanks, and regards,


Bank Supervisor Name
Bank Name
Phone Number
Email ID

DEPARTMENT OF STATISTICS AND INFORMATION MANAGEMENT 4


RESERVE BANK OF INDIA BANK API USER MANUAL

4. API prerequisites:
1. Regulated entities need to setup a designated server/ infrastructure to consume RBI API at their
end and same need to confirm while sending the email registration request form to RBI.

2. The security posture of application infrastructure, key management would be maintained at all
times
3. API access will be enabled from designated public IP address of entities.
4. RBI would be Whitelisting of IPs and would be on a limited basis (2/3 at the maximum) for each
RE.

5. How to Call the RESTful RBI APIs


1. Entities can use their own developed system or market tools/code to consume the RBI API.
2. To consume the API, the entity needs to define the below:
a. URL API- [Link]
b. API signature.
c. The type of API request will always be POST.
d. The content will always be JSON.
e. Entity to fill in the credentials shared by RBI in Header for authorization.
f. The entity to provide the APN number for data to be disseminated. Currently RBI has put
a check for 1 PAN per request, this parameter is configurable.
g. Based on the API additional details can be sent, as shown below for CRILC APIs.
h. The request and response need to be send in encrypted form.
i. Max rate limit set for each entity is-99/per minute
j. Section 7 has the sample postman collections/swagger files for reference.

6. RSA and AES Encryption and Decryption Details


1. OVERVIEW

DEPARTMENT OF STATISTICS AND INFORMATION MANAGEMENT 5


RESERVE BANK OF INDIA BANK API USER MANUAL

2. ENTITY REQUEST ENCRYPTION FLOW

Generate One Time Encrypt the Request body Encrypt the Entity AES Key Keep a mapping
AES Key using the Entity AES Key with RBI Public Key using RSA between the sent
request and the
corresponding AES key

Note: refer Annexure-1 for sample API encryption/decryption details

7. API request and output details – LRS


URL [Link]
HTTP POST
Type
Content- application/json
Type

 Model Schema and Sample Output


Sample Request
Encrypted
{
"header": { Authorization
"authinfo": { Credentials
"LoginParams": [ provided by RBI
"CLIENT_AUTH_INFO", via email.

"vf9JskXXKSyzHuhgZlGN3RovEWBzrKZI6ibsGU/BXkxhz4KkO2ovfEtYqq+cb2gpkqTZR4z7j4Fgp5KR3FTutLuhJ8f
HuOlPavT4XLVcX1w="
],
"UserType": "SYSTEM",
"AuthenticationType": "API_AUTH",
"Key_data":
"xBPYgICZ/g46JSvRScthSNwsRlKUgyhvLXUGOemkeikoTZ4WBWE0R5LCrt8eJWEIJ35uIi+
8No461ejmA+RIJZsS"
}
},
"body": {
"LRS_body":
"fAXQF6rOUSvxPIiWsZDarIeX6ctA7l4XODTVFc74OvIAOl/97Os62ou4INHvfUIeggGFpYkEajBFH……………”
“uniqueId”:” ABCD1234”
}
}
Sample Response
{
"header":{
"transactionid":"28s6401628746989241114",
"status":"success"
},
"body":{
“lrsOutput”: "iGmp1HEIaFXoRqal8+Xd6SRobAxkg7M7A2sCDy6ogYcpqzJ327gSyS7saYO/lcTwjICz01euK4
kOw42tRvsyec23Ulcl/Gp6srcYrNZib4Hcqk4LIfJuQjkzQOX6ilCBj0eCfZ/HBddqnCvFtQxzFcyG+97
tBR5tmPG7ArVI7Wpxwncncw8WIMfRaLIUVpikPAdv4Kp0jav4kgAHGxpsHrCBGh/K/mXpBc2XUnm2BFka
7JC+ZKioTfQoGEyMdS+qOxsHo4puG4pNc9qx4x7+OBHvOwv/HKT6ijqb/Zix8oYPRy/hliBqqgDv3AbC
6jZtCzHMNSNQgCHnu7+2LNgf9NoHEhuWxdk80ny/LfK0pdByHG2PTXkwREOIXOlXBpzXinSp+yBaso2
LolUxqOyez5aBXng4cKXR7qh/zoVudTOvJD3Z3CldHkusrMc74yaKI",
“uniqueId”:” ABCD1234”

DEPARTMENT OF STATISTICS AND INFORMATION MANAGEMENT 6


RESERVE BANK OF INDIA BANK API USER MANUAL

}
}

 Headers: These parameters need to be send in encrypted form as shown in sample


above.
Parameters Parameter Data Sample Input Comments
Type Type
Client-Id* Header String 3q1d211U9zFPvtJCdMuZb9HD35suI7AO This Client ID
would be a
unique token for
each filing entity.
datatype* Header String application/json JSON format in
which request is
to be
transmitted.
channelkey* Header String key10 Signifies the
channel as API
channel. Static
parameter.
Content- Header String application/json JSON format in
Type* which response
is to be
transmitted.
Unique Id Body String ABCD1234 Alpha numeric
Min =2
Max= 16
characters

 Status Messages
Validation Code Status Message
200 Success
400 Bad Response
401 Unauthorized
403 Forbidden Access
429 Too Many Requests (Rate limit exceeded)
500 Internal Server Error
503 Service Unavailable
80000 API credentials are not present in request
80001 Auth Factor is not present in request
80002 Client Id is not present in request
80003 Client Secret is not present in request
80004 Incorrect Client Id / Client Secret combination
80005 API credentials are not valid
80009 Error occurred while processing the API request. Please try again
ER007 Body is null
ER012 Execution failed

DEPARTMENT OF STATISTICS AND INFORMATION MANAGEMENT 7


RESERVE BANK OF INDIA BANK API USER MANUAL

8. API support -Contact Details


Contact Name Contact Email Id Contact Phone Number Type of Support
Swapnil Jare cimsportalspt@[Link] 022-27568522 Technical
Sanket Sanas cimsportalspt@[Link] 022-27568522 Technical

9. Frequently Asked Questions (FAQs)

[Link] is the API Channel and how it differs from FRBS portal?

Response: Functionality wise both FRBS API and Portal are same. However, entities can use this APIs
(Application Programming Interface) to automate the features that are present in the portal without log into
the portal. This API will be used by the systems of the banks/Entities to communicate with the CIMS
application without human intervention.

2. How to consume this API?


Response: Entity needs to subscribe to the API as detailed in document. Also, a designated/dedicated
server to be setup by entities to call API. RBI will whitelist entities public IP address for accessing API.

3. Is server is mandatory and what is configuration of server?


Response: YES. Server configuration is discretion of entities based on API consumption.

4. How many IPs are allowed to API access?


Response: Maximum 3 IP addresses.

5. Whether API is hosted on Internet or intranet?


Response: Internet. API URL: [Link] available on internet which need to be whitelisted at
banks’ end.

6. Whether foreign IPs are allowed?


Response: No, only Indian IPs.

7. How many PANs are allowed per API request?


Response: only one PAN per API request allowed which is in line with functionality available in FRBS
portal.

8. Is API service available 24 X 7?


Response: YES

9. Is API provide real time request?


Response: API provide the LRS return submitted in CIMS Data collection portal on daily basis. Same
information available to entities in T+1 basis.

DEPARTMENT OF STATISTICS AND INFORMATION MANAGEMENT 8


RESERVE BANK OF INDIA BANK API USER MANUAL

10. Is payload encryption available in API?


Response: Yes,

Annexure-1

Sample API payload encryption and decryption details


a. SAMPLE ENCRYPTED REQUEST

Sample Curl: The highlighted is added for Rate Limit

curl --location --request POST


'[Link] \

--header 'Content-Type: application/json' \

--header 'channelkey: key10' \

--header 'datatype: application/json' \

--header 'Client-Id: ECTlZwAy3UpBCjEJMzAzNTM2' \

--header 'Cookie:
TS019b93f7=01af0247249fb82c83505cc07dea640e64c7a80ffd7344103dafb7b93a0c7654bb1154d1c18332694dbf3c44c76af5e
8854b0f0fe1' \

--data-raw '{

"header": {

"authinfo": {

"LoginParams": [

"CLIENT_AUTH_INFO",

"92ZbxmW5XOvM7PGI7LdTjEMrS8dX1jENZyYit384rJbH03bXa1RD/Dx+fZrvKrjMClORwf6FrC6inYe0yei0wUJYRA68Sj1qSVoIQ/
v34cY="

],

"UserType": "SYSTEM",

"AuthenticationType": "API_AUTH",

"Key_data":
"Lp8a+kasxs/9pJCqOqR0gybMEgbNECvCxynde5usuiQ5i6UNHLmX40PW8qZTu/u+2YBilyqCsLqLdrdJsuDuMhzXf1gqJz3MMPjfIx
P3JppSs2U9XMbC2gE947ezJzxBYba0xS858BQ5KVO2KwQkOZf6k4kZJF6aV/oMb+SaB/snBKkDzP2bzuEI2KieoSlLLjoSwtxUEN9F
qoTequZwJV3SdsYkMmNaHUbIvyuZrP8xT2RbstfUI35Hs0RzALt7mSgcox76/8aNaC9mHz8D+Bb/tHTLdyLVZVbeJL1gZCe5Hwmn
GCgIgdI2sxcx2vNDng/Wt/WXue+icqyPflNodw=="

},

"body": {

DEPARTMENT OF STATISTICS AND INFORMATION MANAGEMENT 9


RESERVE BANK OF INDIA BANK API USER MANUAL

"LRS_body":
"hKQSJqDGlZLEJ8asAMOD624TlazBAplm0fMBCjGHxrBbHLQZLnuxDM9zSiJIqPGrJmS17yn5J5rjH8i400iEeMpijNCYMHIiURaDxg
2NLFyUJLt0F44Iij5QhN/S//Cqwv83XUTPjl72qJDsm8+/SgAUgGPgG0VMQ2N+LrK/PFBuE5WswQKZZtHzAQoxh8awfyjOEWwLdk
Tz0XXNN5WqM6N5/IwRPV/VJMpmKujhIa0gOTeOLZaVXtfqkOQ494Q5htySbTc7vA0Go6QOphAHerZ4D5opx+/cY2Xzlor4V2bX
asAsO7xUh2Dem9KIslI2wv83XUTPjl72qJDsm8+/SiaI39RKEklN3vS8ErNW/UHC/zddRM+OXvaokOybz79KYlBwPDPJY6vNQ9RvB
Hl0V3sx3SbA+p29vIRZivlk0P7C/zddRM+OXvaokOybz79KxSoEZ6uAujUnfDyWbKT2Uv/9brGkxlnpi6RauiOpJPaffw1hkjjJ9kTF8J
8lIMwCKdYRIW1P2c/THIg1GglkXXc9JkoS5WjpURBROnOQNyU=",

"uniqueId":"ABC1245896"

}'

b. SAMPLE CODE SNIPPET FOR ENCRYPTION

DEPARTMENT OF STATISTICS AND INFORMATION MANAGEMENT 10


RESERVE BANK OF INDIA BANK API USER MANUAL

From the above method the plainText field will contain the text which user has to encrypt and the AES
secret key which the user has generated using the below key generation method.

3. RBI PROCESSING FLOW ENCRYPTION/DECRYPTION

Decrypt the encrypted CORE Engine for Processing in Encrypt the Response
Entity Payload CIMS Application body using the same
Sequence: Entity AES Key.

1. Key_data: Using
RBI private Key.
2. Use the AES key
present in
Key_data to
decrypt the
request payload

4. ENTITY REQUEST DECRYPTION FLOW

Decrypt the response


using the generated Entities Downstream
AES key for that processing
request

User will receive the response in the below format-

User must decrypt the highlighted part from the above image using the same AES key which was used
while creating the request to receive the output –

Eg.

Before decryption –
"iGmp1HEIaFXoRqal8+Xd6SRobAxkg7M7A2sCDy6ogYcpqzJ327gSyS7saYO/lcTwjICz01euK4kOw42tRvsye
c23Ulcl/Gp6srcYrNZib4Hcqk4LIfJuQjkzQOX6ilCBj0eCfZ/HBddqnCvFtQxzFcyG+97tBR5tmPG7ArVI7Wp

DEPARTMENT OF STATISTICS AND INFORMATION MANAGEMENT 11


RESERVE BANK OF INDIA BANK API USER MANUAL

xwncncw8WIMfRaLIUVpikPAdv4Kp0jav4kgAHGxpsHrCBGh/K/mXpBc2XUnm2BFka7JC+ZKioTfQoGEyMdS+qO
xsHo4puG4pNc9qx4x7+OBHvOwv/HKT6ijqb/Zix8oYPRy/hliBqqgDv3AbC6jZtCzHMNSNQgCHnu7+2LNgf9No
HEhuWxdk80ny/LfK0pdByHG2PTXkwREOIXOlXBpzXinSp+yBaso2LolUxqOyez5aBXng4cKXR7qh/zoVudTOvJ
D3Z3CldHkusrMc74yaKI"

After decryption-
"Status": {

"reportDate": "2024-07-31 13:57:46.995",


"dataSets": [
{
"structureRef": {
"code": "LRSDATA",
"agencyID": "RBI",
"version": "1"
}
},
{
"obs": [
{
"TOTALREMITVALUE": [
{
"TOTAL_REMITANCE_IN_INR": 276854.1782,
"TOTAL_REMITANCE": 3309.08,
"PAN": "AAFPT5733J",
"category": "val"
}
]
}
]
}
],
"currency": "USD",
"Limit": 250000
}

DEPARTMENT OF STATISTICS AND INFORMATION MANAGEMENT 12

You might also like