Tarrakki offers seamless investment platform for Individuals, NRIs, Minors, HUFs, LLP, Partnerships, Private Limited Companies, and Trusts.
API credentials are required in order to invoke Tarrakki APIs. The API credentials are generated and shared with you once your registration is processed.
Write to us at gunjan.dudhrejiya@tarrakki.com if you have not yet received your API credentials.
Tarrakki APIs use OAuth 2.0 protocol for authentication and authorization. It is the de-facto industry-standard for auhorizing applications via internet.
Use following snippet to authenticate using the client id, and client secret provided.
PS: Replace {URL}, {YOUR CLIENT ID}, and {YOUR CLIENT SECRET}.
curl --request POST 'https://{URL}/access_token' \
--header 'Content-Type: application/json' \
--data-raw '{
"grant_type": "client_credentials",
"client_id": "{YOUR CLIENT ID}",
"client_secret": "{YOUR CLIENT SECRET}"
}'
A successful invocation returns HTTP 200 (success) with JSON response e.g.
{
"token_type":"Bearer",
"access_token":"eyJhbGci...",
"expires_in":3600
}
Tarrakki APIs use OpenAPI Specification (OAS) making it easier for humans and computers to understand, discover and use the APIs.
For instance, the GET /kyc API is used to check KYC status of a PAN card holder. The API requires OAuth2 authorization, meaning it is accessible with a valid access token. The API also requires "pan" and it is accepted as a query parameter.
Following example demonstrates GET /kyc API call. The access token is provided as bearer token in the authorization header, and the pan is provided as query parameter.
curl --request GET 'http://{URL}/kyc?pan=ABCDE1234X' \
--header 'Authorization: Bearer eyJhbGci...'
Tarrakki API uses HTTP status codes to communicate success or failure of an API request. For instance, HTTP 200 means that the API request is processed successfully. In general, HTTP status code between 200-299 range indicate success. Following is an example response of the GET /kyc request.
{
"status": "pending",
"pan": "ABCDE1234X"
}
HTTP status codes between 400-499 range indicate client error. Following is an example response of the GET /kyc?pan=ABCD01234X API. The fifth character in the pan letter 'E' is replaced with '0' to make it invalid.
{
"message": "Invalid PAN"
}
Status codes between 500-599 range indicate server error and these are rare.
This section will help you to understand the process of onboarding an investor.
Our APIs use OAuth 2.0 protocol for authentication and authorization. To start using our APIs, you need to authenticate yourself using the client_id, client_secret & base_url.
For more information regarding the same, check the "Getting Started" section.
The first step is to run the KYC Status API. Enter PAN, if it’s KYC verified, then we move further. If the KYC is not verified, we need to register it first and then proceed further.
You may only proceed further if the Response status for this is “registered”
The next step is to create an Investor. We need to fill in all the necessary details and use the Create Investor API, this API will create investor on our system.
As a response, we receive an ‘id’ and the status as “incomplete_details”. Store the id, and proceed further to Step 3.
Once we have created our investor, we need to add all the necessary details. One of these details is Bank Details. Using the “Add Bank” API we add the bank details of the investor.
Remember, you need to pass the ‘id’ we have for the previously created investor.
This API has no success response. Now move to Step 4.
For Individuals, you need to Upload “Signature” using the Upload document API.
Refer below table to find the documents needed for each investor types.
| Investor Type | Required Documents |
|---|---|
| individual | signature |
The next step is to create the Nominee. You can add up to 3 nominees, and make sure that the total share adds up to no more or no less than 100.
You can store the response "nominee_id".
Status Check : Investor Status API You can use this API to know the current status of your investor. Until you have completed Steps upto Step 4, the status will be “incomplete_details”. After Step 4, the status should be “pending_nominee_verification” After Step 5, the status should be “under_review” Once the Investor’s Bank account gets verified, the status will change to “ready_to_invest”
Once the status is “ready_to_invest”, we can start placing orders and invest.
This collection provides set of APIs to check KYC status of an investor, and submit a request to initiate eKYC for an investor.
Returns KYC status of the PAN holder
| pan required | string = 10 characters Permanent Account Number (PAN) |
| pan | string |
| status | string (kycStatus) Enum: "pending" "registered" "initiated" "rejected" |
curl --request GET 'https://{URL}/kyc?pan={PAN}' \ --header 'Authorization: Bearer {TOKEN}'
{- "pan": "ABCDE1234X",
- "status": "pending"
}Initiate e-KYC
Initiate KYC
| name required | string |
| pan required | string |
| email required | string |
| mobile required | string |
| callback_url | string <uri> |
| web_redirect_url | string |
| mobile_redirect_url | string |
{- "name": "string",
- "pan": "string",
- "email": "string",
- "mobile": "string",
}{
}Verifies PAN details
| pan required | string Permanent Account Number |
| name required | string Combination of first name, middle name, and last name or name on the PAN card. |
| dob required | string <date> Date of Birth |
| father_name required | string Combination of first name, middle name, and last name. |
| consent required | boolean |
| consent_purpose required | string [ 20 .. 50 ] characters |
| type | string Enum: "individual" "company" "hindu_undivided_family" "body_of_individuals" "association_of_persons" "government_agency" "artificial_juridicial_person" "local_authority" "limited_liability_partnership" "trust" | ||||||||||||||||||||||||||||
| pan | string | ||||||||||||||||||||||||||||
| name | string Enum: "match" "mismatch" | ||||||||||||||||||||||||||||
| dob | string Enum: "match" "mismatch" | ||||||||||||||||||||||||||||
| father_name | string Enum: "match" "mismatch" | ||||||||||||||||||||||||||||
| status | string Enum: "valid" "fake" "deactivated" "invalid" "amalgamation" "acquisition" "death" "dissolution" "liquidated" "merger" "partition" "split" "under_liquidation"
| ||||||||||||||||||||||||||||
| aadhaar_seeding_status | string Enum: "successful" "unsuccessful" "not_seeded" "not_applicable"
|
{- "pan": "ABCPD1234X",
- "name": "John M Doe",
- "dob": "2000-01-31",
- "father_name": "Michel Doe",
- "consent": true,
- "consent_purpose": "Identity verification for mutual fund investment"
}{- "type": "individual",
- "pan": "ABCPD1234X",
- "first_name": "match",
- "middle_name": "match",
- "last_name": "match",
- "status": "valid",
- "aadhaar_seeding_status": "successful"
}Set of APIs to facilitate onboarding of an investor. It involves registering investor's personal, demographic and financial information with BSE.
This collection also provides set of APIs to retrieve details of an investor, and update the information.
This Api is used to create an investor.
Note: Only KYC registered investors can be created.
| investor_type required | string (investor_type) Not modifiable after investor is created |
| first_name required | string <= 30 characters Must be alphabets |
| last_name | string <= 30 characters Must be alphabets |
| dob required | string <date> |
| gender required | string (gender) Enum: "male" "female" "transgender" |
| pan required | string = 10 characters Must be alphanumeric |
| email required | string <= 50 characters |
| mobile required | string = 10 characters Must be numeric |
required | object (address_v2) |
| email_declaration required | string (email_declaration) Enum: "self" "spouse" "guardian" |
| mobile_declaration required | string (mobile_declaration) Enum: "self" "spouse" "guardian" |
required | object (base_fatca_individual) |
| id | string |
| status | string (investor_status) Enum: "incomplete_detail" "incomplete_kyc_details" "pending_nominee_authentication" "under_review" "ready_to_invest" |
{- "investor_type": "individual",
- "first_name": "Willium",
- "last_name": "Green",
- "dob": "2000-12-31",
- "gender": "male",
- "pan": "ABCDE1234X",
- "email": "john@somedomain.com",
- "mobile": "1234567890",
- "address": {
- "address_line_1": "address line 1",
- "address_line_2": "address line 2",
- "address_line_3": "address line 3",
- "city": "Mumbai",
- "state": "Maharashtra",
- "country": "India",
- "pincode": "400001"
}, - "email_declaration": "self",
- "mobile_declaration": "self",
- "fatca_detail": {
- "occupation": "business",
- "income_source": "salary",
- "income_slab": "above_10_lac_upto_25_lac",
- "birth_place": "Ahmedabad",
- "birth_country": "India"
}
}{- "id": "1",
- "status": "under_review"
}Get the list of investors registered by client
| limit | number [ 1 .. 100 ] Default: 20 Number of items to return |
| offset | number >= 0 Default: 0 Number of items to skip before starting to collect the result set |
string Email address of an investor | |
| pan | string PAN of an investor |
| id | string |
| investor_type | string (investor_type) Enum: "individual" "proprietor" "minor" "nri" "nro" "nre" "partnership" "llp" "private_limited" "limited" "huf" "trust" Not modifiable after investor is created |
| name | string |
| pan | string |
string | |
| mobile | string |
| status | string (investor_status) Enum: "incomplete_detail" "incomplete_kyc_details" "pending_nominee_authentication" "under_review" "ready_to_invest" |
[- {
- "id": "string",
- "investor_type": "individual",
- "name": "string",
- "pan": "string",
- "email": "string",
- "mobile": "string",
- "status": "incomplete_detail"
}
]This Api is used to create an investor (v2).
Note: Only KYC registered investors can be created.
| investor_type required | string (investor_type) Not modifiable after investor is created |
| first_name required | string <= 70 characters Must be alphabets |
| last_name | string <= 70 characters Must be alphabets |
| dob required | string <date> |
| gender required | string (gender) Enum: "male" "female" "transgender" |
| pan required | string = 10 characters Must be alphanumeric |
| email required | string <= 50 characters |
| mobile required | string = 10 characters Must be numeric |
| mobile_country_code | string Optional country code for mobile number (v2 field) |
required | object (address_v2) |
| email_declaration required | string (email_declaration) Enum: "self" "spouse" "guardian" |
| mobile_declaration required | string (mobile_declaration) Enum: "self" "spouse" "guardian" |
required | object (base_fatca_individual-2) |
| id | string |
| status | string (investor_status) Enum: "incomplete_detail" "incomplete_kyc_details" "pending_nominee_authentication" "under_review" "ready_to_invest" |
{- "investor_type": "individual",
- "first_name": "Willium",
- "last_name": "Green",
- "dob": "2000-12-31",
- "gender": "male",
- "pan": "ABCDE1234X",
- "email": "john@somedomain.com",
- "mobile": "1234567890",
- "address": {
- "address_line_1": "address line 1",
- "address_line_2": "address line 2",
- "address_line_3": "address line 3",
- "city": "Mumbai",
- "state": "Maharashtra",
- "country": "India",
- "pincode": "400001"
}, - "email_declaration": "self",
- "mobile_declaration": "self",
- "fatca_detail": {
- "occupation": "business",
- "income_source": "salary",
- "income_slab": "above_10_lac_upto_25_lac",
- "birth_place": "Ahmedabad",
- "birth_country": "India"
}
}{- "id": "1",
- "status": "under_review"
}Retrieve investor detail associated with the id (v2 with additional fields)
| id required | string Investor id |
| investor_type | string (investor_type) Not modifiable after investor is created |
| first_name | string <= 70 characters Must be alphabets |
| last_name | string <= 70 characters Must be alphabets |
| dob | string <date> |
| gender | string (gender) Enum: "male" "female" "transgender" |
| pan | string = 10 characters Must be alphanumeric |
string <= 50 characters | |
| mobile | string = 10 characters Must be numeric |
| mobile_country_code | string Optional country code for mobile number (v2 field) |
object (address_v2) | |
| email_declaration | string (email_declaration) Enum: "self" "spouse" "guardian" |
| mobile_declaration | string (mobile_declaration) Enum: "self" "spouse" "guardian" |
object (base_fatca_individual-2) |
{- "id": "2",
- "investor_type": "individual",
- "first_name": "Willium",
- "last_name": "Green",
- "pan": "ABCDE1234X",
- "email": "john@somedomain.com",
- "mobile": "1234567890",
- "mobile_country_code": "+91",
- "dob": "2000-12-31",
- "gender": "male",
- "address": {
- "address_line_1": "Plot No 123, Tech Park",
- "address_line_2": "Whitefield",
- "address_line_3": "Bangalore",
- "city": "Bangalore",
- "state": "Karnataka",
- "country": "India",
- "pincode": "560066"
}, - "email_declaration": "self",
- "mobile_declaration": "self",
- "fatca_detail": {
- "occupation": "business",
- "income_source": "salary",
- "income_slab": "above_10_lac_upto_25_lac",
- "birth_place": "Ahmedabad",
- "birth_country": "India",
- "is_pep": false,
- "net_worth": 5000000,
- "net_worth_as_on_date": "2024-03-31"
}
}Updates investor detail partially associated with the id (v2 with additional fields support)
Provide only those fields which needs to be updated
Note: After the investor is registered with BSE, any updates to investor detail will be restricted.
| id required | string Investor id |
| investor_type | string (investor_type) Not modifiable after investor is created |
| first_name | string <= 70 characters Must be alphabets |
| last_name | string <= 70 characters Must be alphabets |
| dob | string <date> |
| gender | string (gender) Enum: "male" "female" "transgender" |
| pan | string = 10 characters Must be alphanumeric |
string <= 50 characters | |
| mobile | string = 10 characters Must be numeric |
| mobile_country_code | string Optional country code for mobile number (v2 field) |
object (address_v2) | |
| email_declaration | string (email_declaration) Enum: "self" "spouse" "guardian" |
| mobile_declaration | string (mobile_declaration) Enum: "self" "spouse" "guardian" |
object (base_fatca_individual_optional) |
{- "investor_type": "individual",
- "first_name": "Willium",
- "last_name": "Green",
- "dob": "2000-12-31",
- "gender": "male",
- "pan": "ABCDE1234X",
- "email": "john@somedomain.com",
- "mobile": "1234567890",
- "address": {
- "address_line_1": "address line 1",
- "address_line_2": "address line 2",
- "address_line_3": "address line 3",
- "city": "Mumbai",
- "state": "Maharashtra",
- "country": "India",
- "pincode": "400001"
}, - "email_declaration": "self",
- "mobile_declaration": "self",
- "fatca_detail": {
- "occupation": "business",
- "income_source": "salary",
- "income_slab": "above_10_lac_upto_25_lac",
- "birth_place": "Ahmedabad",
- "birth_country": "India"
}
}Get the list of all banks added to the investor (v2 with additional fields)
| id required | string Investor id |
| id required | string Bank account identifier |
| account_type required | string Enum: "savings" "current" "nre" "nro" Type of bank account |
| account_number required | string Bank account number |
| ifsc required | string IFSC code of the bank |
| verification_document required | string (bank_verification_document_type) Enum: "cancelled_cheque" "bank_statement" |
| verification_document_type | string Enum: "cancelled_cheque" "bank_statement" "passbook" "pay_slip" "utility_bill" "other" Type of verification document used for bank verification |
curl --request GET '{BASE URL}/v2/investors/{INVESTOR ID}/banks' \ --header 'Authorization: Bearer eyJh...'
[- {
- "id": "1",
- "account_type": "savings",
- "account_number": "123456789",
- "ifsc": "HDFC0001",
- "verification_document": "cancelled_cheque",
- "verification_document_type": "cancelled_cheque"
}
]Add investor's bank account details (v2)
| id required | string Investor id |
Bank
| account_type required | string Enum: "savings" "current" "nre" "nro" |
| account_number required | string |
| ifsc required | string |
| verification_document | string (bank_verification_document_type) Enum: "cancelled_cheque" "bank_statement" |
| file | string <binary> |
| id | string Bank ID |
curl --request POST '{BASE_URL}/v2/investors/{INVESTOR ID}/banks' \ --header 'Authorization: Bearer eyJhb...' \ --form 'account_type="savings"' \ --form 'account_number="123456789"' \ --form 'ifsc="HDFC0000001"' \ --form 'verification_document="cancelled_cheque"' \ --form 'file=@"/C:/Users/Tarrakki/Desktop/cancelled-cheque.png"'
{- "id": "string"
}Retrieve investor's bank-details associated with the given investor id and bank id (v2)
| id required | string Investor id |
| bank_id required | string Bank id |
| id | string |
| investor_id | string |
| account_number | string |
| ifsc | string |
| status | string (BankAccountStatus) Enum: "approved" "processing" "rejected" |
| status_remark | string |
curl --request GET '{BASE URL}/v2/investors/{INVESTOR ID}/banks/{BANK ID}' \ --header 'Authorization: Bearer eyJh...'
[- {
- "id": "1234",
- "investor_id": "9488",
- "account_number": "123456789",
- "ifsc": "HDFC0001",
- "status": "processing",
- "status_remark": ""
}
]Retrieve investor detail associated with the id
| id required | string Investor id |
| investor_type | string (investor_type) Not modifiable after investor is created |
| first_name | string <= 30 characters Must be alphabets |
| last_name | string <= 30 characters Must be alphabets |
| dob | string <date> |
| gender | string (gender) Enum: "male" "female" "transgender" |
| pan | string = 10 characters Must be alphanumeric |
string <= 50 characters | |
| mobile | string = 10 characters Must be numeric |
object (address_v2) | |
| email_declaration | string (email_declaration) Enum: "self" "spouse" "guardian" |
| mobile_declaration | string (mobile_declaration) Enum: "self" "spouse" "guardian" |
object (base_fatca_individual) |
{- "id": "2",
- "investor_type": "individual",
- "first_name": "Willium",
- "last_name": "Green",
- "pan": "ABCDE1234X",
- "email": "john@somedomain.com",
- "mobile": "1234567890",
- "fatca_detail": {
- "income_source": "salary",
- "income_slab": "above_10_lac_upto_25_lac",
- "birth_place": "Ahmedabad",
- "birth_country": "India"
}
}Updates investor detail associated with the id
Note: After the investor is registered with BSE, any updates to investor detail will be restricted.
| id required | string Investor id |
| investor_type required | string (investor_type) Not modifiable after investor is created |
| first_name required | string <= 30 characters Must be alphabets |
| last_name | string <= 30 characters Must be alphabets |
| dob required | string <date> |
| gender required | string (gender) Enum: "male" "female" "transgender" |
| pan required | string = 10 characters Must be alphanumeric |
| email required | string <= 50 characters |
| mobile required | string = 10 characters Must be numeric |
required | object (address_v2) |
| email_declaration required | string (email_declaration) Enum: "self" "spouse" "guardian" |
| mobile_declaration required | string (mobile_declaration) Enum: "self" "spouse" "guardian" |
required | object (base_fatca_individual) |
{- "investor_type": "individual",
- "first_name": "Willium",
- "last_name": "Green",
- "dob": "2000-12-31",
- "gender": "male",
- "pan": "ABCDE1234X",
- "email": "john@somedomain.com",
- "mobile": "1234567890",
- "address": {
- "address_line_1": "address line 1",
- "address_line_2": "address line 2",
- "address_line_3": "address line 3",
- "city": "Mumbai",
- "state": "Maharashtra",
- "country": "India",
- "pincode": "400001"
}, - "email_declaration": "self",
- "mobile_declaration": "self",
- "fatca_detail": {
- "occupation": "business",
- "income_source": "salary",
- "income_slab": "above_10_lac_upto_25_lac",
- "birth_place": "Ahmedabad",
- "birth_country": "India"
}
}Updates investor detail partially associated with the id
Provide only those fields which needs to be updated
Note: After the investor is registered with BSE, any updates to investor detail will be restricted.
| id required | string Investor id |
| investor_type required | string (investor_type) Not modifiable after investor is created |
| first_name required | string <= 30 characters Must be alphabets |
| last_name | string <= 30 characters Must be alphabets |
| dob required | string <date> |
| gender required | string (gender) Enum: "male" "female" "transgender" |
| pan required | string = 10 characters Must be alphanumeric |
| email required | string <= 50 characters |
| mobile required | string = 10 characters Must be numeric |
required | object (address_v2) |
| email_declaration required | string (email_declaration) Enum: "self" "spouse" "guardian" |
| mobile_declaration required | string (mobile_declaration) Enum: "self" "spouse" "guardian" |
required | object (base_fatca_individual) |
{- "investor_type": "individual",
- "first_name": "Willium",
- "last_name": "Green",
- "dob": "2000-12-31",
- "gender": "male",
- "pan": "ABCDE1234X",
- "email": "john@somedomain.com",
- "mobile": "1234567890",
- "address": {
- "address_line_1": "address line 1",
- "address_line_2": "address line 2",
- "address_line_3": "address line 3",
- "city": "Mumbai",
- "state": "Maharashtra",
- "country": "India",
- "pincode": "400001"
}, - "email_declaration": "self",
- "mobile_declaration": "self",
- "fatca_detail": {
- "occupation": "business",
- "income_source": "salary",
- "income_slab": "above_10_lac_upto_25_lac",
- "birth_place": "Ahmedabad",
- "birth_country": "India"
}
}Investor Status
| id required | string Investor id |
| status | string (investor_status) Enum: "incomplete_detail" "incomplete_kyc_details" "pending_nominee_authentication" "under_review" "ready_to_invest" |
| message | Array of strings (investor_incomplete_detail) Items Enum: "birth_certificate" "investor_signature" "guardian_signature" "cancelled_cheque" "pan_image" "pan" "name" "type" "address" "country" "state" "city" "pincode" "occ_code" "gender" "dob" "company_status" "residence_status" "bank_rejected" |
{- "status": "incomplete_detail",
- "message": [
- "birth_certificate"
]
}Get the list of all banks added to the investor
| id required | string Investor id |
| bank_id | string |
| account_type | string Enum: "savings" "current" "nre" "nro" |
| account_number | string |
| ifsc | string |
| verification_document | string (bank_verification_document_type) Enum: "cancelled_cheque" "bank_statement" |
curl --request GET '{BASE URL}/investors/{INVESTOR ID}/banks' \ --header 'Authorization: Bearer eyJh...'
[- {
- "bank_id": "1",
- "account_type": "savings",
- "account_number": "123456789",
- "ifsc": "HDFC0001",
- "verification_document": "cancelled_cheque"
}
]Add investor's bank account details.
| id required | string Investor id |
Bank
| account_type required | string Enum: "savings" "current" "nre" "nro" |
| account_number required | string |
| ifsc required | string |
| verification_document | string (bank_verification_document_type) Enum: "cancelled_cheque" "bank_statement" |
| file | string <binary> |
| bank_id | string Bank ID |
curl --request POST '{BASE_URL}/investors/{INVESTOR ID}/banks' \ --header 'Authorization: Bearer eyJhb...' \ --form 'account_type="savings"' \ --form 'account_number="123456789"' \ --form 'ifsc="HDFC0000001"' \ --form 'verification_document="cancelled_cheque"' \ --form 'file=@"/C:/Users/Tarrakki/Desktop/cancelled-cheque.png"'
{- "bank_id": "string"
}Update the bank of an investor
| id required | string Investor id |
| bank_id required | string Bank id |
curl --request PUT '{BASE_URL}/investors/{INVESTOR ID}/banks/{BANK ID}' \ --header 'Authorization: Bearer eyJhb...' \ --form 'account_type="savings"' \ --form 'account_number="123456789"' \ --form 'ifsc="HDFC0000001"' \ --form 'verification_document="cancelled_cheque"' \ --form 'file=@"/C:/Users/Tarrakki/Desktop/cancelled-cheque.png"'
Retrieve investor's bank-details associated with the given investor id and bank id.
| id required | string Investor id |
| bank_id required | string Bank id |
| id | string Deprecated |
| bank_id | string |
| investor_id | string |
| account_number | string |
| ifsc | string |
| status | string (BankAccountStatus) Enum: "approved" "processing" "rejected" |
| status_remark | string |
curl --request GET '{BASE URL}/investors/{INVESTOR ID}/banks/{BANK ID}' \ --header 'Authorization: Bearer eyJh...'
[- {
- "id": "1234",
- "bank_id": "1234",
- "investor_id": "9488",
- "account_number": "123456789",
- "ifsc": "HDFC0001",
- "status": "processing",
- "status_remark": ""
}
]Get the list of uploaded documents
| id required | string Investor id |
| document_type | string (document_type) Enum: "birth_certificate" "signed_aof" "signed_fatca" "pan" "signature" "partnership_deed" "board_resolution" "authorised_signatory_list" "nomination_opt_out_declaration" For Nominee Opt-Out Declaration document should in .pdf format and size must be less than 1 MB. |
curl --request GET '{BASE URL}/investors/{INVESTOR ID}/documents' \ --header 'Authorization: Bearer eyJh...'
[- {
- "document_type": "birth_certificate"
}
]Upload a document
| id required | string Investor id |
Investor document
| document_type | string (document_type) Enum: "birth_certificate" "signed_aof" "signed_fatca" "pan" "signature" "partnership_deed" "board_resolution" "authorised_signatory_list" "nomination_opt_out_declaration" For Nominee Opt-Out Declaration document should in .pdf format and size must be less than 1 MB. |
| file | string <binary> |
curl --request POST '{BASE URL}/investors/{INVESTOR ID}/documents' \ --header 'Authorization: Bearer eyJh...' \ --form 'document_type="birth_certificate"' \ --form 'file=@"/C:/Users/Tarrakki/Desktop/birth-certificate.png"'
Get the list of uploaded documents
| id required | string Investor id |
| document_type | string Enum: "birth_certificate" "signed_aof" "signed_fatca" "pan" "first_applicant_signature" "second_applicant_signature" "third_applicant_signature" "partnership_deed" "board_resolution" "authorised_signatory_list" "nomination_opt_out_declaration" |
| file_url | string <uri> |
| uploaded_at | string <date-time> |
curl --request GET '{BASE URL}/investors/{INVESTOR ID}/documents' \ --header 'Authorization: Bearer eyJh...'
[- {
- "document_type": "birth_certificate",
- "uploaded_at": "2019-08-24T14:15:22Z"
}
]Upload a document
| id required | string Investor id |
| document_type required | string Enum: "birth_certificate" "signed_aof" "signed_fatca" "pan" "first_applicant_signature" "second_applicant_signature" "third_applicant_signature" "partnership_deed" "board_resolution" "authorised_signatory_list" "nomination_opt_out_declaration" |
| file required | string <binary> |
| document_id | string |
| document_type | string Enum: "birth_certificate" "signed_aof" "signed_fatca" "pan" "first_applicant_signature" "second_applicant_signature" "third_applicant_signature" "partnership_deed" "board_resolution" "authorised_signatory_list" "nomination_opt_out_declaration" |
| file_url | string <uri> |
curl --request POST '{BASE URL}/investors/{INVESTOR ID}/documents' \ --header 'Authorization: Bearer eyJh...' \ --form 'document_type="birth_certificate"' \ --form 'file=@"/C:/Users/Tarrakki/Desktop/birth-certificate.png"'
{- "document_id": "string",
- "document_type": "birth_certificate",
}Retrieve the virtual account details linked to the investor, which can be used for NEFT/RTGS transactions.
| id required | string Investor id |
| virtual_account_id | string Virtual account id |
| beneficiary_name | string Beneficiary name for the virtual account |
| ifsc | string IFSC code for the virtual account |
| account_type | string Value: "current" Virtual account type |
curl --request GET '{BASE URL}/investors/{INVESTOR ID}/virtual-account' \ --header 'Authorization: Bearer eyJh...'
{- "virtual_account_id": "123456789",
- "beneficiary_name": "Indian Clearing Corporation Ltd - MFD A/C",
- "ifsc": "HDFC0000001",
- "account_type": "current"
}Get the list of all nominees for the investor
| id required | string Investor id |
| count | integer |
| next | string or null <uri> |
| previous | string or null <uri> |
| nomination_opt_in | boolean |
Array of objects (nominee) |
curl --request GET '{BASE URL}/investors/9488/nominee' \ --header 'Authorization: Bearer eyJh...'
{- "count": 1,
- "next": null,
- "previous": null,
- "results": [
- {
- "id": "1",
- "name": "John Doe",
- "relation": "spouse",
- "share": 100,
- "minor": false,
- "identity_type": "pan",
- "identity_value": "ABCDE1234F",
- "email": "johndoe@gmail.com",
- "mobile_number": "9876543210"
}
]
}Adds a nominee for the investor
| id required | string Investor id |
Nominee
| nomination_opt_in | boolean Default: true |
required | Array of objects (base_nominee) |
| authenticator required | string Enum: "tarrakki" "partner" |
| auth_ref required | string Reference number used for 2FA verification using any type of authenticator. |
string Required when 2FA verification is done by the "partner" | |
| mobile | string Required when 2FA verification is done by the "partner" |
{- "authenticator": "tarrakki",
- "auth_ref": "110",
- "nominees": [
- {
- "name": "John Doe",
- "relation": "spouse",
- "share": 100,
- "minor": false,
- "identity_type": "pan",
- "identity_value": "ABCDE1234F",
- "email": "johndoe@gmail.com",
- "mobile_number": "9876543210"
}
]
}Update nominee detail
| id required | string Investor id |
Nominee
| nomination_opt_in | boolean Default: true |
required | Array of objects (base_nominee) |
| authenticator required | string Enum: "tarrakki" "partner" |
| auth_ref required | string Reference number used for 2FA verification using any type of authenticator. |
string Required when 2FA verification is done by the "partner" | |
| mobile | string Required when 2FA verification is done by the "partner" |
{- "authenticator": "tarrakki",
- "auth_ref": "110",
- "nominees": [
- {
- "name": "John Doe",
- "relation": "spouse",
- "share": 100,
- "minor": false,
- "identity_type": "pan",
- "identity_value": "ABCDE1234F",
- "email": "johndoe@gmail.com",
- "mobile_number": "9876543210"
}
]
}Get the list of all nominees for the investor (v2)
| id required | string Investor id |
| name | string Name of the nominee |
| relation | string Enum: "spouse" "son" "daughter" "mother" "father" "brother" "sister" "others" Investor's relation with the nominee |
| other_relation | string Required when relation is others |
| share | integer [ 1 .. 100 ] Percentage of share to allocate |
| identity_type | string Enum: "pan" "aadhar" "driving_license" "passport" Type of identity document |
| identity_value | string Value of the identity document |
string Nominee's email address | |
| mobile_number | string Nominee's mobile number |
| mobile_country_code | string Country code for the nominee's mobile number (e.g., +91, +1) |
| minor | boolean Whether the nominee is a minor (under age 18) |
| guardian_name | string Name of the guardian (required if nominee is a minor) |
| guardian_relation | string Guardian's relation with the nominee (required if nominee is a minor) |
| guardian_identity_type | string Enum: "pan" "aadhar" "driving_license" "passport" Type of guardian's identity document (required if nominee is a minor) |
| guardian_identity_value | string Value of the guardian's identity document (required if nominee is a minor) |
curl --request GET '{BASE URL}/investors/9488/nominee' \ --header 'Authorization: Bearer eyJh...'
[- {
- "name": "string",
- "relation": "spouse",
- "other_relation": "string",
- "share": 1,
- "identity_type": "pan",
- "identity_value": "string",
- "email": "string",
- "mobile_number": "string",
- "mobile_country_code": "+91",
- "minor": true,
- "guardian_name": "string",
- "guardian_relation": "string",
- "guardian_identity_type": "pan",
- "guardian_identity_value": "string"
}
]Adds a nominee for the investor with enhanced fields including guardian details and gender
| id required | string Investor id |
Nominee (v2)
{- "authenticator": "email",
- "auth_ref": "123456",
- "nominees": [
- {
- "name": "John Doe",
- "relation": "son",
- "share": 50,
- "identity_type": "aadhar",
- "identity_value": "123456789012",
- "email": "john.doe@example.com",
- "mobile_number": "9876543210",
- "mobile_country_code": "+91",
- "gender": "male",
- "minor": true,
- "guardian": {
- "name": "Jane Doe",
- "relation": "mother",
- "dob": "1980-01-01",
- "identity_type": "aadhar",
- "identity_value": "987654321012"
}
}, - {
- "name": "Alice Smith",
- "relation": "daughter",
- "share": 50,
- "identity_type": "aadhar",
- "identity_value": "987654321013",
- "email": "alice.smith@example.com",
- "mobile_number": "9876543211",
- "mobile_country_code": "+91",
- "gender": "female",
- "minor": false
}
]
}Update nominee detail with enhanced fields including guardian details and gender
| id required | string Investor id |
Nominee (v2)
{- "authenticator": "email",
- "auth_ref": "123456",
- "nominees": [
- {
- "name": "John Doe",
- "relation": "son",
- "share": 50,
- "identity_type": "aadhar",
- "identity_value": "123456789012",
- "email": "john.doe@example.com",
- "mobile_number": "9876543210",
- "mobile_country_code": "+91",
- "gender": "male",
- "minor": true,
- "guardian": {
- "name": "Jane Doe",
- "relation": "mother",
- "dob": "1980-01-01",
- "identity_type": "aadhar",
- "identity_value": "987654321012"
}
}, - {
- "name": "Alice Smith",
- "relation": "daughter",
- "share": 50,
- "identity_type": "aadhar",
- "identity_value": "987654321013",
- "email": "alice.smith@example.com",
- "mobile_number": "9876543211",
- "mobile_country_code": "+91",
- "gender": "female",
- "minor": false
}
]
}Get the list of bank mandates
| limit | number [ 1 .. 100 ] Default: 20 Number of items to return |
| offset | number >= 0 Default: 0 Number of items to skip before starting to collect the result set |
| investor_id | string Investor Id |
| count | number |
| next | string or null <uri> |
| previous | string or null <uri> |
Array of objects (BankMandate) |
{- "count": 1,
- "next": null,
- "previous": null,
- "results": [
- {
- "mandate_id": "9",
- "mandate_type": "nach",
- "investor_id": "11",
- "bank_id": "4737",
- "auto_debit_limit": 100000,
- "status": "approved"
}
]
}Create a bank mandate
Bank Mandate
| investor_id required | string |
| mandate_type required | string (BankMandateType) |
| bank_id required | string |
| auto_debit_limit required | number |
| mandate_id | string |
{- "investor_id": "1",
- "mandate_type": "enach",
- "bank_id": "12",
- "auto_debit_limit": 100000,
}{- "mandate_id": "string"
}Retrieve bank mandate detail associated with the given id
| mandate_id required | string Bank mandate id |
| mandate_id | string |
| investor_id | string |
| mandate_type | string (BankMandateType) |
| bank_id | string |
| auto_debit_limit | number |
| status | string (BankMandateStatus) Enum: "initiated" "failed" "pending" "processing" "requires-correction" "approved" "rejected" |
| status_remark | string |
{- "investor_id": "string",
- "mandate_type": "nach",
- "bank_id": "string",
- "auto_debit_limit": 0,
- "status": "initiated",
- "status_remark": "string"
}Get the list of bank mandates with updated field names:
mandate_type is now typemandate_id is now id| limit | number [ 1 .. 100 ] Default: 20 Number of items to return |
| offset | number >= 0 Default: 0 Number of items to skip before starting to collect the result set |
| investor_id | string Investor Id |
| count | number |
| next | string or null <uri> |
| previous | string or null <uri> |
Array of objects (BankMandate-2) |
{- "count": 0,
- "results": [
- {
- "id": "string",
- "type": "nach",
- "investor_id": "string",
- "bank_id": "string",
- "auto_debit_limit": 0,
- "status": "initiated"
}
]
}Create a bank mandate (v2)
Bank Mandate
| investor_id required | string |
| mandate_type required | string (BankMandateType) |
| bank_id required | string |
| auto_debit_limit required | number |
| id | string The unique identifier for the mandate (previously mandate_id) |
{- "investor_id": "1",
- "mandate_type": "enach",
- "bank_id": "12",
- "auto_debit_limit": 100000,
}{- "id": "string"
}Portfolio
| id required | string Investor id |
| folio | string |
| fund_id | string |
| fund_name | string |
| nav_date | string <date> |
| nav | number Last available NAV of the fund |
| units | number |
| total_investment | number |
| current_value | number |
| absolute_return | number |
| xirr | number |
| asset_class | string Enum: "equity" "debt" "hybrid" |
[- {
- "folio": "string",
- "fund_id": "string",
- "fund_name": "string",
- "nav_date": "2019-08-24",
- "nav": 0,
- "units": 0,
- "total_investment": 0,
- "current_value": 0,
- "absolute_return": 0,
- "xirr": 0,
- "asset_class": "equity"
}
]Returns list of funds matching the specified criteria.
| limit | number [ 1 .. 100 ] Default: 20 Number of items to return |
| offset | number >= 0 Default: 0 Number of items to skip before starting to collect the result set |
| category | string Fund category |
| sub_category | string Fund sub-category |
| instant | boolean Default: false Instant redemption |
| nfo | boolean New Fund Offerings |
| status | string (fund_status) Enum: "active" "inactive" Fund Status |
| option | string (fund_option) Enum: "growth" "idcw" "bonus" Fund Option |
| id | string |
| name | string |
| category | string |
| sub_category | string |
| amc_id | string |
| amc | string Asset management company |
| scheme_type | string |
| aum | number Asset under management |
| return_6_mth | number |
| return_1_yr | number |
| return_3_yr | number |
| min_initial | number Minimum amount for the first buy order |
| min_additional | number Minimum amount for additional buy order |
| nav | number Last available NAV of the fund |
| nav_date | string <date> Last available NAV's date |
| isin | string |
| amfi_code | string |
| plan | string |
| nfo_close_date | string <date> Closing date of the nfo |
| status | string (fund_status) Enum: "active" "inactive" |
| option | string (fund_option) Enum: "growth" "idcw" "bonus" |
[- {
- "id": "string",
- "name": "string",
- "category": "string",
- "sub_category": "string",
- "amc_id": "string",
- "amc": "string",
- "scheme_type": "string",
- "aum": 0,
- "return_6_mth": 0,
- "return_1_yr": 0,
- "return_3_yr": 0,
- "min_initial": 0,
- "min_additional": 0,
- "nav": 0,
- "nav_date": "2019-08-24",
- "isin": "string",
- "amfi_code": "string",
- "plan": "string",
- "nfo_close_date": "2019-08-24",
- "status": "active",
- "option": "growth"
}
]The API is used to retrieve fund detail associated with the id
| id required | string Fund id |
| isin | string |
| amfi_code | string |
| name | string |
| category | string |
| sub_category | string |
| amc_id | string |
| amc | string Asset management company |
object (amc_restrictions) AMC Restrictions Details | |
| scheme_type | string |
| scheme_document | string <URL> Scheme document |
| aum | number Asset under management |
| aum_date | string <date> |
Array of objects (historical_return) | |
| min_initial | number Minimum Initial Investment |
| min_additional | number Minimum Subsequence Investment |
| min_redemption | number Minimum Redemption |
| nav | number NAV |
| nav_date | string <date> NAV date |
| fund_type | string |
| objective | string Investment stratargy |
| philosophy | string Investment philosophy |
| risk_level | string (risk) Enum: "low" "low_to_moderate" "moderate" "moderately_high" "high" "very_high" Risk level |
object Risk Measures | |
object Relative Risk Measures | |
object Category Returns | |
| dividend_investment_plan | boolean |
| standard_deviation_5_yr | number |
| inception_date | string <date> Inception date |
| expense_ratio | number |
Array of objects (historical_nav) NAV historical data | |
Array of objects (exit_load) | |
Array of objects (fund_managers) | |
Array of objects (benchmarks) | |
Array of objects (holdings) | |
Array of objects (holdings) | |
| nfo_close_date | string <date> Closing date of the nfo |
| status | string (fund_status) Enum: "active" "inactive" |
{- "isin": "string",
- "amfi_code": "string",
- "name": "string",
- "category": "string",
- "sub_category": "string",
- "amc_id": "string",
- "amc": "string",
- "amc_restrictions": {
- "order_type": "buy",
- "is_allowed": "string",
- "min_amount": "string",
- "max_amount": "string",
- "amount_multiples": "string",
- "additional_amount": "string"
}, - "scheme_type": "string",
- "scheme_document": "string",
- "aum": 0,
- "aum_date": "2019-08-24",
- "historical_returns": [
- {
- "period": "1_day",
- "percentage": 0
}
], - "min_initial": 0,
- "min_additional": 0,
- "min_redemption": 0,
- "nav": 0,
- "nav_date": "2019-08-24",
- "fund_type": "string",
- "objective": "string",
- "philosophy": "string",
- "risk_level": "low",
- "risk_measures": {
- "sharpe_ratio": [
- {
- "period": "1_yr",
- "value": "string"
}
], - "skewness": [
- {
- "period": "1_yr",
- "value": "string"
}
], - "sortino_ratio": [
- {
- "period": "1_yr",
- "value": "string"
}
], - "standard_deviation": [
- {
- "period": "1_yr",
- "value": "string"
}
]
}, - "relative_risk_measures": {
- "alpha": [
- {
- "period": "3_yr",
- "value": "string"
}
], - "beta": [
- {
- "period": "3_yr",
- "value": "string"
}
], - "capture_ratio_downside": [
- {
- "period": "1_yr",
- "value": "string"
}
], - "capture_ratio_upside": [
- {
- "period": "1_yr",
- "value": "string"
}
]
}, - "category_returns": {
- "category_cumulative_return": [
- {
- "period": "2_yr",
- "value": "string"
}
], - "category_return": [
- {
- "period": "2_yr",
- "value": "string"
}
], - "category_end_date": "2019-08-24"
}, - "dividend_investment_plan": true,
- "standard_deviation_5_yr": 0,
- "inception_date": "2019-08-24",
- "expense_ratio": 0,
- "nav_history": [
- {
- "nav_date": "2019-08-24",
- "nav": 0
}
], - "exit_loads": [
- {
- "unit": 0,
- "breakpoint_unit": "string",
- "low_breakpoint": 0,
- "high_breakpoint": 0,
- "value": 0
}
], - "managers": [
- {
- "name": "string",
- "start_date": "2019-08-24"
}
], - "benchmarks": [
- {
- "index_name": "string",
- "weightage": 0
}
], - "top_ten_holdings": [
- {
- "name": "string",
- "weightage": 0
}
], - "detailed_holdings": [
- {
- "name": "string",
- "weightage": 0
}
], - "nfo_close_date": "2019-08-24",
- "status": "active"
}Returns list of asset management companies (AMCs) matching the specified criteria.
| limit | number [ 1 .. 100 ] Default: 20 Number of items to return |
| offset | number >= 0 Default: 0 Number of items to skip before starting to collect the result set |
| investor_type | string Default: "individual" Investor type |
| investor_country | string Default: "India" The investor_country parameter tells about the country of residence of the investor. The investor_country should be a standard country name. You can check a list of standard country names here. |
| id | string |
| name | string |
[- {
- "id": "string",
- "name": "string"
}
]The API is used to retrieve asset management company (AMC) detail associated with the id
| id required | string AMC id |
| id | string |
| name | string |
| url | string <uri> |
| logo | string <uri> |
{- "id": "string",
- "name": "string",
}List orders
| limit | number [ 1 .. 100 ] Default: 20 Number of items to return |
| offset | number >= 0 Default: 0 Number of items to skip before starting to collect the result set |
| from_date | string <date> Order date |
| to_date | string <date> Order date |
| order_type | string (order_type) Enum: "buy" "sell" "sip" "switch" "switch_in" "stp" "swp" "broker_transfer_in" "broker_transfer_out" Order type |
| parent_order_id | string Parent order id. |
| investor_id | string Investor Id |
| fund_id | string Fund Id |
| status | string (order_status) Enum: "failed" "success" "cancelled" "payment_not_initiated" "awaiting_payment_confirmation" "payment_approved" "payment_rejected" "complete" Order status |
| count | integer |
| next | string or null <uri> |
| previous | string or null <uri> |
Array of objects |
{- "count": 2,
- "next": null,
- "previous": null,
- "results": [
- {
- "id": "1",
- "order_type": "buy",
- "date": "2022-07-13",
- "investor_id": "1",
- "fund_id": "1",
- "fund_name": "Quant Small Cap Fund Growth",
- "folio": "123456",
- "units": "150",
- "amount": 10000,
- "status": "complete",
- "status_remark": "",
- "nav": 1.57,
- "nav_date": "2022-07-12"
}, - {
- "id": "2",
- "order_type": "sell",
- "date": "2022-07-13",
- "investor_id": "1",
- "fund_id": "1",
- "fund_name": "Navi Large Cap Equity Fund Direct Plan Yearly Payout of Inc Dis cum Capital Wdrl Opt",
- "folio": "123456",
- "units": "10",
- "amount": 1000,
- "status": "complete",
- "status_remark": "",
- "nav": 2.78,
- "nav_date": "2022-07-12"
}
]
}Place order
| order_type required | string (order_type) |
| investor_id required | string |
| fund_id required | string |
| folio | string |
| euin | string |
| investor_ip | string <IPv4> IP address of investor |
| amount required | number |
| mandate_id | string Required when order's payment method is OTM. |
| authenticator required | string (authenticator) Enum: "tarrakki" "partner" |
| auth_ref | string (auth_ref) Required when 2FA verification is done through "tarrakki" |
| mobile | string Required when 2FA verification is done by the "partner" |
string Required when 2FA verification is done by the "partner" |
| order_id | string |
{- "order_type": "buy",
- "investor_id": "1",
- "fund_id": "1001",
- "folio": "1234567890",
- "amount": 5000,
- "authenticator": "tarrakki",
- "auth_ref": "101"
}{- "order_id": "string"
}List orders with additional mandate_id field (v2)
| limit | number [ 1 .. 100 ] Default: 20 Number of items to return |
| offset | number >= 0 Default: 0 Number of items to skip before starting to collect the result set |
| from_date | string <date> Order date |
| to_date | string <date> Order date |
| order_type | string (order_type) Enum: "buy" "sell" "sip" "switch" "switch_in" "stp" "swp" "broker_transfer_in" "broker_transfer_out" Order type |
| parent_order_id | string Parent order id. |
| investor_id | string Investor Id |
| fund_id | string Fund Id |
| status | string (order_status) Enum: "failed" "success" "cancelled" "payment_not_initiated" "awaiting_payment_confirmation" "payment_approved" "payment_rejected" "complete" Order status |
| count | integer |
| next | string or null <uri> |
| previous | string or null <uri> |
Array of objects |
{- "count": 0,
- "results": [
- {
- "id": "string",
- "order_type": "buy",
- "parent_order_id": "string",
- "date": "2019-08-24",
- "investor_id": "string",
- "fund_id": "string",
- "fund_name": "string",
- "folio": "string",
- "units": "string",
- "amount": 0,
- "status": "failed",
- "status_remark": "string",
- "nav": 0,
- "nav_date": "2019-08-24",
- "mandate_id": "string"
}
]
}Retrieve order detail
| id required | string Order id |
| order_id | string |
| order_type | string |
| parent_order_id | string |
| date | string <date> |
| nav | number |
| nav_date | string <date> |
| investor_id | string |
| fund_id | string |
| folio | string |
| euin | string |
| investor_ip | string <IPv4> IP address of investor |
| amount | number |
| mandate_id | string Required when order's payment method is OTM. |
| authenticator | string (authenticator) Enum: "tarrakki" "partner" |
| auth_ref | string (auth_ref) Required when 2FA verification is done through "tarrakki" |
| mobile | string Required when 2FA verification is done by the "partner" |
string Required when 2FA verification is done by the "partner" | |
| status | string (order_status) Enum: "failed" "success" "cancelled" "payment_not_initiated" "awaiting_payment_confirmation" "payment_approved" "payment_rejected" "complete" |
| status_remark | string |
{- "order_id": "1",
- "date": "2019-08-24",
- "status": "complete",
- "order_type": "buy",
- "investor_id": "1",
- "fund_id": "1001",
- "folio": "1234567890",
- "amount": 5000,
- "status_remark": "",
- "nav": 3.81,
- "nav_date": "2019-08-23"
}Returns list of bulk orders
| limit | number [ 1 .. 100 ] Default: 20 Number of items to return |
| offset | number >= 0 Default: 0 Number of items to skip before starting to collect the result set |
| from_date | string <date> Order date |
| to_date | string <date> Order date |
| investor_id | string Investor Id |
| status | string (bulk_order_status) Enum: "processing" "processed" Bulk order status |
| count | integer |
| next | string or null <uri> |
| previous | string or null <uri> |
Array of objects |
{- "count": 0,
- "results": [
- {
- "bulk_order_id": "string",
- "date": "2019-08-24",
- "investor_id": "string",
- "euin": "string",
- "status": "processing"
}
]
}Create order(s) in bulk
| investor_id required | string |
| euin | string |
| investor_ip required | string <IPv4> IP address of investor |
| authenticator required | string (authenticator) Enum: "tarrakki" "partner" |
| auth_ref | string (auth_ref) Required when 2FA verification is done through "tarrakki" |
| mobile | string Required when 2FA verification is done by the "partner" |
string Required when 2FA verification is done by the "partner" | |
required | Array of any non-empty |
| bulk_order_id | string |
{- "investor_id": "string",
- "euin": "string",
- "investor_ip": "string",
- "authenticator": "tarrakki",
- "auth_ref": "string",
- "mobile": "string",
- "email": "string",
- "detail": [
- {
- "order_type": "buy",
- "fund_id": "string",
- "folio": "string",
- "amount": 0
}
]
}{- "bulk_order_id": "string"
}Retrieve bulk order detail
| id required | string Bulk order id |
| bulk_order_id | string |
| date | string <date> |
| investor_id | string |
| euin | string |
| status | string (bulk_order_status) Enum: "processing" "processed" |
Array of any |
{- "bulk_order_id": "string",
- "date": "2019-08-24",
- "investor_id": "string",
- "euin": "string",
- "status": "processing",
- "detail": [
- {
- "order_id": "string",
- "order_type": "buy",
- "parent_order_id": "string",
- "date": "2019-08-24",
- "nav": 0,
- "nav_date": "2019-08-24",
- "fund_id": "string",
- "folio": "string",
- "amount": 0,
- "status": "new",
- "status_remark": "string"
}
]
}List SIP orders
| limit | number [ 1 .. 100 ] Default: 20 Number of items to return |
| offset | number >= 0 Default: 0 Number of items to skip before starting to collect the result set |
| from_date | string <date> Order date |
| to_date | string <date> Order date |
| investor_id | string Investor Id |
| status | string (sip_status) Enum: "success" "pending" "cancelled" "failed" SIP status |
| order_id | string Order Id |
| count | integer |
| next | string or null <uri> |
| previous | string or null <uri> |
Array of objects |
{- "count": 0,
- "results": [
- {
- "id": "string",
- "date": "2019-08-24",
- "investor_id": "string",
- "fund_id": "string",
- "fund_name": "string",
- "folio": "string",
- "mandate_id": "string",
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "frequency": "weekly",
- "no_of_installment": 0,
- "first_order_today": true,
- "amount": 0,
- "status": "failed"
}
]
}Cancel SIP order
| id required | string SIP order id |
| investor_id required | string |
| fund_id required | string |
| mandate_id required | string |
| amount required | number |
| state required | string Value: "cancel" |
| investor_id | string |
| fund_id | string |
| amount | number |
| mandate_id | string |
{- "investor_id": "string",
- "fund_id": "string",
- "mandate_id": "string",
- "amount": 0,
- "state": "cancel"
}{- "investor_id": "string",
- "fund_id": "string",
- "amount": 0,
- "mandate_id": "string"
}List STP orders
| limit | number [ 1 .. 100 ] Default: 20 Number of items to return |
| offset | number >= 0 Default: 0 Number of items to skip before starting to collect the result set |
| from_date | string <date> Order date |
| to_date | string <date> Order date |
| investor_id | string Investor Id |
| status | string (stp_status) Enum: "new" "registered" "cancelled" STP status |
| count | integer |
| next | string or null <uri> |
| previous | string or null <uri> |
Array of objects |
{- "count": 0,
- "results": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "date": "2019-08-24",
- "investor_id": "string",
- "from_fund_id": "string",
- "to_fund_id": "string",
- "folio": "string",
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "frequency": "daily",
- "no_of_transfers": 0,
- "first_order_today": true,
- "amount": "string",
- "units": "string",
- "status": "new"
}
]
}List SWP orders
| limit | number [ 1 .. 100 ] Default: 20 Number of items to return |
| offset | number >= 0 Default: 0 Number of items to skip before starting to collect the result set |
| from_date | string <date> Order date |
| to_date | string <date> Order date |
| investor_id | string Investor Id |
| status | string (swp_status) Enum: "new" "registered" "cancelled" SWP status |
| count | integer |
| next | string or null <uri> |
| previous | string or null <uri> |
Array of objects |
{- "count": 0,
- "results": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "date": "2019-08-24",
- "investor_id": "string",
- "fund_id": "string",
- "folio": "string",
- "start_date": "2019-08-24",
- "frequency": "daily",
- "no_of_withdrawals": 0,
- "first_order_today": true,
- "amount": "string",
- "units": "string",
- "status": "new"
}
]
}Cancel Systematic order
| id required | string Systematic order id |
| investor_id required | string |
| order_type required | string Enum: "stp" "swp" |
| state required | string Value: "cancel" |
| id | string |
| investor_id | string |
{- "investor_id": "string",
- "order_type": "stp",
- "state": "cancel"
}{- "id": "string",
- "investor_id": "string"
}List all types of systematic orders (SIP, STP, SWP) for the authenticated user's organization. This endpoint combines the functionality of the previous separate SIP, STP, and SWP list endpoints.
| limit | number [ 1 .. 100 ] Default: 20 Number of items to return |
| offset | number >= 0 Default: 0 Number of items to skip before starting to collect the result set |
| from_date | string <date> Filter orders from this date (YYYY-MM-DD) |
| to_date | string <date> Filter orders until this date (YYYY-MM-DD) |
| investor_id | string Filter by investor ID |
| status | string (OrderStatusEnum) Enum: "failed" "pending" "success" "cancelled" "payment_not_initiated" "awaiting_payment_confirmation" "payment_approved" "payment_rejected" "complete" Filter by order status |
| order_type | string (SystematicOrderTypeEnum) Enum: "sip" "stp" "swp" Filter by systematic order type |
| count required | integer Total number of results |
| next | string or null URL to the next page of results |
| previous | string or null URL to the previous page of results |
required | Array of SipOrderListItem (object) or StpOrderListItem (object) or SwpOrderListItem (object) |
{- "count": 0,
- "next": "string",
- "previous": "string",
- "results": [
- {
- "id": "string",
- "order_type": "sip",
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "date": "2019-08-24",
- "investor_id": "string",
- "fund_id": "string",
- "fund_name": "string",
- "folio": "string",
- "mandate_id": "string",
- "frequency": "string",
- "no_of_installment": 0,
- "first_order_today": true,
- "amount": 0,
- "status": "failed"
}
]
}List payments
| limit | number [ 1 .. 100 ] Default: 20 Number of items to return |
| offset | number >= 0 Default: 0 Number of items to skip before starting to collect the result set |
| from_date | string <date> Payment date |
| to_date | string <date> Payment date |
| status | string (payment_status) Enum: "initiated" "processing" "success" "failed" Payment status |
| payment_method | string (payment_method) Enum: "upi" "neft_rtgs" "netbanking" |
| investor_id | string Investor Id |
| count | integer |
| next | string or null <uri> |
| previous | string or null <uri> |
Array of objects |
{- "count": 0,
- "results": [
- {
- "payment_method": "upi",
- "payment_id": "d43b87f9-9e28-4802-8eaa-6ee91a40ea71",
- "date": "2019-08-24",
- "investor_id": "string",
- "status": "initiated",
- "orders": [
- {
- "order_id": "string"
}
], - "amount": "string"
}
]
}Pay through UPI, Net-Banking and NEFT/RTGS. Payment for multiple order numbers is supported.
Payment detail
| payment_method required | string (payment_method) |
| investor_id required | string |
required | Array of objects Orders |
| bank_id required | string |
| amount required | string |
| payment_mode required | enum Enum: "intent" "qr" |
| callback_url | string <uri> |
| payment_id | string |
| redirect_url | string URL to which the user should be redirected to complete the payment. This field is returned only for non-UPI payment methods. |
| intent_url | string URL to which the user should be redirected to complete the payment. This field is returned only for UPI intent payments. |
| qr_code | string <base64> Base64 encoded string of the QR code image. This field is returned only for UPI QR payments. |
{- "payment_method": "upi",
- "investor_id": "string",
- "orders": [
- {
- "order_id": "string"
}
], - "bank_id": "string",
- "amount": "string",
- "payment_mode": "intent",
}{- "payment_id": "string",
- "redirect_url": "string",
- "intent_url": "string",
- "qr_code": "string"
}Retrieve payment detail
| id required | string Payment id |
| payment_id | string |
| date | string <date> |
| payment_method | string (payment_method) |
| investor_id | string |
Array of objects Orders | |
| bank_id | string |
| amount | string |
| intent_url | string |
| qr_code | string <base64> |
| status | string (payment_status) Enum: "initiated" "processing" "success" "failed" |
{- "payment_method": "upi",
- "investor_id": "string",
- "orders": [
- {
- "order_id": "string"
}
], - "bank_id": "string",
- "amount": "string",
- "intent_url": "string",
- "qr_code": "string",
- "status": "initiated"
}Returns list of banks details with specified payment mode.
| limit | number [ 1 .. 100 ] Default: 20 Number of items to return |
| offset | number >= 0 Default: 0 Number of items to skip before starting to collect the result set |
| type | string (bank_type) Enum: "direct" "nodal" |
| payment_method | string (payment_method) Enum: "upi" "neft_rtgs" "netbanking" |
| count | integer |
| next | string or null <uri> |
| previous | string or null <uri> |
Array of objects (bank_master) |
{- "count": 0,
- "results": [
- {
- "name": "string",
- "type": "direct",
- "payment_method": [
- "upi"
]
}
]
}Upload RTA Feed received from CAMS, and KARVY
Upload RTA feed request body
| rta required | string Enum: "cams" "karvy" |
| file required | string <binary> |
| from_date required | string <date> The date from which the RTA feed is applicable. Full-date notation as defined by RFC 3339, section 5.6, for example, 2017-07-21 |
| to_date required | string <date> The date till which the RTA feed is applicable. Full-date notation as defined by RFC 3339, section 5.6, for example, 2017-07-21 |
curl --request POST '{BASE URL}/rta_feeds' \ --header 'Authorization: Bearer eyJh...' \ --form 'rta="cams"' \ --form 'file=@"/C:/Users/Tarrakki/Desktop/cams.csv"'
{- "id": "string"
}Get the status of the uploaded RTA Feed.
| id required | string The unique identifier of the RTA Feed. |
| id required | string |
| status required | string Enum: "processing" "success" "failed" |
| message | string Reason for failure. Not available when status is success. |
{- "id": "string",
- "status": "processing",
- "message": "string"
}Upload a new report feed.
Upload Report feed request body
| type required | string Enum: "client_master" "fatca" "mandate" "sip_registration" "stp_registration" "swp_registration" |
| file required | string <binary> |
curl --request POST '{BASE URL}/report-feeds' \ --header 'Authorization: Bearer eyJh...' \ --form 'type="client_master"' \ --form 'file=@"/C:/Users/Tarrakki/Desktop/client_master.csv"'
{- "batch_id": "string"
}Get the processing status of a report feed.
| batch_id required | string |
| id required | string <uuid> |
| status required | string Enum: "processing" "success" "failed" |
| message | string or null |
required | mandate_metadata (object) or client_master_metadata (object) or fatca_metadata (object) or sip_registration_metadata (object) or stp_registration_metadata (object) or swp_registration_metadata (object) |
{- "id": "de0539a5-05ac-4d41-bf1c-12efd84f86",
- "status": "success",
- "message": null,
- "metadata": {
- "errors": [ ],
- "status": "success",
- "total_rows": 4360,
- "upi_mandate_ids": [
- 123
], - "mandates_created": 1,
- "mandate_code_to_id_map": {
- "8546198": 123
}, - "mandates_created_for_users": [
- 12345
]
}
}Provides questionaire for risk assessment
| id required | string Investor id |
| question_id | string |
| question | string |
Array of objects (risk_assessment_question_option) | |
Array of objects (risk_assessment_input_field) |
[- {
- "question_id": "string",
- "question": "string",
- "options": [
- {
- "option_id": "string",
- "option_type": "string",
- "option_value": "string",
- "option_category": "string",
- "inputs": [
- {
- "name": "string",
- "type": "string"
}
]
}
], - "inputs": [
- {
- "name": "string",
- "type": "string"
}
]
}
]Retrieve investor's risk assessment
| id required | string Investor id |
| assessment_date | string <date> |
| observations | Array of strings |
| risk_profile | string Enum: "conservative" "moderately_conservative" "balanced" "moderately_agressive" "aggressive" |
| risk_score | number |
{- "assessment_date": "2019-08-24",
- "observations": [
- "Creation of an emergency corpus is a smart move..",
- "You have been safeguarded against any uncertainities.."
], - "risk_profile": "balanced",
- "risk_score": 54.5
}Create investor's risk assessment
| id required | string Investor id |
Risk Profile Answers
required | Array of objects |
{ "answers": [ { "question_id": "1", "options": [ { "option_id": "10" } ] }, { "question_id": "2", "options": [ { "option_id": "21" }, { "option_id": "22" } ], "inputs": [ { "name": "amount", "value": "5000000" } ] }, { "question_id": "3", "options": [ { "option_id": "20", "inputs": [ { "name": "target_year", "value": "2025" }, { "name": "amount", "value": "50000" } ] } ] } ] }
Upload CAS (Consolidated Account Statement).
| id required | string Investor id |
Upload CAS
| file required | string <binary> |
| password required | string |
| cas_id | string |
curl --request POST '{BASE URL}/investors/{id}/cas' \ --header 'Authorization: Bearer eyJh...' \ --form 'file=@"/C:/Users/Tarrakki/Desktop/david_cas.pdf"' \ --form 'password="ABCDP4589M"'
{- "cas_id": "string"
}Generate and retrieve Consolidated Account Statement (CAS).
Note: this API requires investor's consent. Use Send OTP and Verify OTP APIs to obtain the investor consent.
CAS
| auth_ref required | string <uuid> Authorization reference. i.e., otp_id |
| cas_type | string |
| pan | string |
| mobile | string |
string | |
Array of objects (data) | |
Array of objects (portfolio-2) | |
object (investor_detail) | |
| statementHoldingFilter | string |
{- "auth_ref": "a9ac3845-212f-4f9c-83f4-49a2136de7d1"
}{- "cas_type": "summarized",
- "pan": "string",
- "mobile": "string",
- "email": "string",
- "data": [
- {
- "summary": [
- {
- "costValue": "string",
- "amc": "string",
- "amcName": "string",
- "gainLoss": "string",
- "gainLossPercentage": "string",
- "currentMktValue": "string",
- "isDemat": "string"
}
], - "schemes": [
- {
- "transactionSource": "string",
- "schemeCode": "string",
- "idcwChangeAllowed": "string",
- "schemeOption": "string",
- "decimalAmount": 0,
- "schemeType": "string",
- "costValue": "string",
- "stpAllow": "string",
- "gainLossPercentage": "string",
- "modeOfHolding": "string",
- "closingBalance": "string",
- "lienUnitsFlag": "string",
- "investorName": "string",
- "taxStatus": "string",
- "swpAllow": "string",
- "brokerCode": "string",
- "bank": {
- "pincode": "string",
- "city": "string",
- "accountNo": "string",
- "accountType": "string",
- "name": "string",
- "micr": "string",
- "neftIfsc": "string",
- "ifsc": "string",
- "branch": "string"
}, - "availableAmount": "string",
- "currentMktValue": "string",
- "email": "string",
- "emailRelationship": "string",
- "nav": "string",
- "availableUnits": "string",
- "navDate": "string",
- "mobile": "string",
- "mobileRelationship": "string",
- "schemeName": "string",
- "dpId": "string",
- "isDemat": "string",
- "decimalNav": 0,
- "assetType": "string",
- "planMode": "string",
- "sipAllow": "string",
- "amc": "string",
- "amcName": "string",
- "gainLoss": "string",
- "purAllow": "string",
- "folio": "string",
- "newFolio": "string",
- "brokerName": "string",
- "swtAllow": "string",
- "age": 0,
- "isin": "string",
- "decimalUnits": 0,
- "redAllow": "string",
- "rtaName": "string"
}
]
}
], - "portfolio": [
- {
- "currentMktValue": "string",
- "isDemat": "string",
- "costValue": "string",
- "gainLoss": "string",
- "gainLossPercentage": "string"
}
], - "investorDetails": {
- "investorName": "string",
- "mobile": "string",
- "email": "string",
- "address": {
- "line1": "string",
- "line2": "string",
- "line3": "string",
- "city": "string",
- "pincode": "string",
- "state": "string",
- "country": "string"
}
}, - "statementHoldingFilter": "string"
}Generate and retrieve Consolidated Account Statement (CAS).
Note: this API requires investor's consent. Use Send OTP and Verify OTP APIs to obtain the investor consent.
| id required | string <uuid> Auth Reference |
| cas_type | string |
| pan | string |
| mobile | string |
string | |
Array of objects (data) | |
Array of objects (portfolio-2) | |
object (investor_detail) | |
| statementHoldingFilter | string |
{- "cas_type": "summarized",
- "pan": "string",
- "mobile": "string",
- "email": "string",
- "data": [
- {
- "summary": [
- {
- "costValue": "string",
- "amc": "string",
- "amcName": "string",
- "gainLoss": "string",
- "gainLossPercentage": "string",
- "currentMktValue": "string",
- "isDemat": "string"
}
], - "schemes": [
- {
- "transactionSource": "string",
- "schemeCode": "string",
- "idcwChangeAllowed": "string",
- "schemeOption": "string",
- "decimalAmount": 0,
- "schemeType": "string",
- "costValue": "string",
- "stpAllow": "string",
- "gainLossPercentage": "string",
- "modeOfHolding": "string",
- "closingBalance": "string",
- "lienUnitsFlag": "string",
- "investorName": "string",
- "taxStatus": "string",
- "swpAllow": "string",
- "brokerCode": "string",
- "bank": {
- "pincode": "string",
- "city": "string",
- "accountNo": "string",
- "accountType": "string",
- "name": "string",
- "micr": "string",
- "neftIfsc": "string",
- "ifsc": "string",
- "branch": "string"
}, - "availableAmount": "string",
- "currentMktValue": "string",
- "email": "string",
- "emailRelationship": "string",
- "nav": "string",
- "availableUnits": "string",
- "navDate": "string",
- "mobile": "string",
- "mobileRelationship": "string",
- "schemeName": "string",
- "dpId": "string",
- "isDemat": "string",
- "decimalNav": 0,
- "assetType": "string",
- "planMode": "string",
- "sipAllow": "string",
- "amc": "string",
- "amcName": "string",
- "gainLoss": "string",
- "purAllow": "string",
- "folio": "string",
- "newFolio": "string",
- "brokerName": "string",
- "swtAllow": "string",
- "age": 0,
- "isin": "string",
- "decimalUnits": 0,
- "redAllow": "string",
- "rtaName": "string"
}
]
}
], - "portfolio": [
- {
- "currentMktValue": "string",
- "isDemat": "string",
- "costValue": "string",
- "gainLoss": "string",
- "gainLossPercentage": "string"
}
], - "investorDetails": {
- "investorName": "string",
- "mobile": "string",
- "email": "string",
- "address": {
- "line1": "string",
- "line2": "string",
- "line3": "string",
- "city": "string",
- "pincode": "string",
- "state": "string",
- "country": "string"
}
}, - "statementHoldingFilter": "string"
}Sends an OTP (One Time Password) to the investor's registered email or mobile number.
Send OTP
| otp_type required | string (otp_type) |
| pan required | string = 10 characters Permanent Account Number (PAN) of the investor. |
string Registered email id of the investor. Note: email id is not required if mobile number is provided. | |
| mobile | string Registered mobile number of the investor. Note: mobile number is not required if email id is provided |
| otp_type | string |
| otp_id | string <uuid> |
{- "otp_type": "summarized_cas",
- "pan": "ABCDE1234X",
- "email": "john@somedomain.com"
}{- "otp_type": "summarized_cas",
- "otp_id": "54bb07c0-6b6d-4331-9eba-71e1c890eb14"
}Verify OTP (One Time Password)
| id required | string OTP Id |
Verify OTP
| otp_type required | string (otp_type) Enum: "nominee" "buy_order" "sell_order" "sip_order" "switch_order" "stp_order" "swp_order" "bulk_order" "summarized_cas" "detailed_cas" |
| otp required | number |
| otp_type | string (otp_type) Enum: "nominee" "buy_order" "sell_order" "sip_order" "switch_order" "stp_order" "swp_order" "bulk_order" "summarized_cas" "detailed_cas" |
| otp | number |
{- "otp_type": "nominee",
- "otp": 0
}{- "otp_type": "nominee",
- "otp": 0
}| event_type required | string (event_type) |
| order_type required | string (order_type) Enum: "buy" "sell" "sip" "switch" "switch_in" "stp" "swp" "broker_transfer_in" "broker_transfer_out" |
| order_id required | string |
| parent_order_id | string |
| status required | string (order_status) Enum: "failed" "success" "cancelled" "payment_not_initiated" "awaiting_payment_confirmation" "payment_approved" "payment_rejected" "complete" |
| status_remark | string |
{- "event_type": "order_status_update",
- "order_type": "buy",
- "order_id": "string",
- "parent_order_id": "string",
- "status": "failed",
- "status_remark": "string"
}Subscribe to a webhook
Subscribe to an event notification
| event_type required | string (event_type) Enum: "order_status_update" "investor_status_update" |
| api_key required | string |
| url required | string <url> |
| id | string subscription id |
{- "event_type": "order_status_update",
- "api_key": "string",
- "url": "string"
}{- "id": "string"
}