NAV Navbar
shell
  • Introduction
  • Authentication
  • KYC Requests
  • Esigns
  • Parses
  • MF Investment Accounts
  • MF Purchases
  • Mf Redemptions
  • MF Settlement Details
  • Introduction

    The FP API is designed to be easily predictable and have consistency across all the resources. It accepts json in the request body and returns a json representation of the resource. We use standard HTTP response codes and HTTP verbs.

    You can access FP API in sandbox and production modes separately. Use the following base URLs:
    Sandbox (for testing): https://s.finprim.com
    Production (for live transactions): https://api.fintechprimitives.com

    Authentication

    FP API uses bearer auth to authenticate all the api calls. You need to send the following header in all your api calls along with your access token:

    Authorization: Bearer ACCESS_TOKEN

    Generate the access token

    Refer to the login api documentation here

    KYC Requests

    Represents the kyc application made for your investor. Use this to submit a video kyc application to our partner AMC. Read the usage docs in detail to understand the mandatory requirements as per SEBI's guidelines.

    Endpoints:

    POST /v2/kyc_requests
    GET /v2/kyc_requests/:id
    GET /v2/kyc_requests
    PATCH /v2/kyc_requests
    POST /v2/kyc_requests/:id/simulate

    KYC Request Object

    {
      "object": "kyc_request",
      "id": "6wq82c2ce-e38d-4b8e-85f3-wqfb7dc382f21",
      "status": "pending",
      "aadhaar_number": "1210",
      "pan": "K1PPG1998U",
      "name": "Rani Gupta",
      "father_name": "Rajesh Gupta",
      "spouse_name": null,
      "mother_name": "Neha Gupta",
      "email": "raj@example.com",
      "mobile": {
        "isd": "+91",
        "number": "8160597103"
      },
      "signature": "434ceed567-53c5-3f68-ba3b-cbdc58526c64",
      "photo": "946848da-50bb-4957-a940-c164c0c71172",
      "gender": "male",
      "date_of_birth": "1981-01-15",
      "marital_status": "married",
      "country_of_birth": "in",
      "address": {
        "city": "Delhi",
        "proof": "e17b7wb1-2204-40f2-b4b9-8012c3c36f73",
        "line_1": "E/&02",
        "line_2": "Opp SBI ATM",
        "line_3": "12th Main Road South Delhi",
        "country": "in",
        "pincode": "110001",
        "proof_back": "71a773fa-134c-4849-891e-df3a2s230f6f",
        "proof_type": "passport",
        "proof_number": "JXXXXXXA",
        "proof_issue_date": "2004-10-20",
        "proof_expiry_date": "2020-10-20"
      },
      "identity_proof": "6d0f4d71-aec3-4be6-8295-630e0fddaef6",
      "residential_status": "resident_individual",
      "occupation_type": null,
      "created_at": "2019-11-09T13:26:38.946+0530",
      "expires_at": "2019-11-09T13:26:38.946+0530",
      "otp": "9bbf32",
      "geolocation": {
        "latitude": 12.354,
        "longitude": 77.453
      },
      "bank_account": {
        "account_holder_name": "Rani Gupta",
        "account_number": "919017057965811",
        "ifsc_code": "UTIB0003093",
        "proof": "cc10460f-905d-4b37-8983-97a5a8afc07a"
      },
      "verification": {
        "status": "pending",
        "details": null,
        "details_verbose": null
      },
      "requirements": {
        "fields_needed": [
          "ipv_video"
        ]
      }
    }
    
    Attribute Type Comments
    object string Value is kyc_request. String representing the object type. Objects of the same type share the same value
    id string Unique identifier of the kyc_request object
    name string Full name of the investor
    pan string PAN number of the investor
    email string Email id of the investor
    mobile hash Mobile number of the investor
    date_of_birth string Date of birth of the investor
    aadhaar_number string Last 4 digits of the investor's aadhaar number
    father_name string Investor's father name
    spouse_name string Investor's spouse name
    mother_name string Investor's mother name
    gender enum Investor's gender. Possible values: male, female, transgender
    country_of_birth enum Investor's country of birth in ISO 3601 2 alphabet code
    marital_status enum Investor's marital status. Possible values: married, unmarried, others
    residential_status enum This determines the investor's residential status for tax purposes. Possible values: resident_individual
    occupation_type enum Investor's occupation details. Possible values: business, professional, self_employed, retired, housewife, student, public_sector, private_sector, government_sector, others
    geolocation hash Location of the investor from where the kyc application is submitted. It contains latitude and longitude
    bank_account hash Investor's bank account details. Contains account_holder_name, account_number, ifsc_code, proof
    address hash Address for all correspondence
    identity_proof string Copy of investor's pan card
    ipv_video string Verification video
    signature string Investor's signature
    photo string Investor's photograph
    otp string Verification code for the video. The code has no expiration time.
    status string The status of the kyc request. Can be pending, esign_required, submitted, successful, rejected
    created_at string The timestamp at which the kyc request object is created
    expires_at string The timestamp at which the kyc request object expires
    verification hash The details of the verification status of the data submitted
    requirements hash Feedback on the data requirements. It contains fields_needed which represent the list of fields that are required for procesing the KYC Request

    verification hash

    A snippet of verification hash from the KYC Request object

    {
      // showing only a part of KYC Request object
      "verification": {
        "status": "rejected",
        "details": {
          "pan": "data_mismatch",
          "signature": "data_missing",
          "address.proof": "document_unclear"
        },
        "details_verbose": {
          "pan": {
            "code": "data_mismatch",
            "reason": "Invalid pan"
          },
          "signature": {
            "code": "data_missing",
            "reason": "Signature not available"
          },
          "address.proof": {
            "code": "document_invalid",
            "reason": "Proof of address not valid; Translation into english is required"
          }
        }
      }
    }
    
    Attribute Type Comments
    status string Status of the verification. Can be pending, esign_required, submitted, successful, rejected
    details hash If the verification status is rejected, this contains the details about the rejection. Keys of this hash represent the fields in the kyc request object and value can be data_missing, data_mismatch, document_unclear, document_invalid
    details_verbose hash If the verification status is rejected, this contains the details about the rejection along with a reason text. Keys of this hash represent the fields in the kyc request object and value is a hash with code and reason keys. code is the same as in the details hash

    Create a kyc request

    curl -X POST "https://s.finprim.com/v2/kyc_requests"
      -H "Authorization: Bearer ACCESS_TOKEN"
      -H "Content-Type: application/json"
      -d '{json_request}'
    

    JSON request:

    {
      "pan": "K1PPG1998U",
      "email": "raj@example.com",
      "aadhaar_number": "1210",
      "mobile": {
        "isd": "+91",
        "number": "8160597103"
      },
      "name": "Rani Gupta",
      "father_name": "Rajesh Gupta",
      "spouse_name": "",
      "mother_name": "Neha Gupta",
      "gender": "male",
      "date_of_birth": "1980-10-19",
      "country_of_birth": "in",
      "marital_status": "unmarried",
      "residential_status": "resident_individual",
      "occupation_type": "private_sector",
      "address": {
        "line_1": "E/&02",
        "line_2": "Opp SBI ATM",
        "city": "Delhi",
        "pincode": "110001",
        "country": "in",
        "proof": "4192de0d-165f-458e-89ec-d4334b370256",
        "proof_back": "771a4d57-5447-4b1e-b4b6-dcb6049bda8c",
        "proof_type": "passport",
        "proof_number": "JXXXXXX0",
        "proof_issue_date": "2004-10-20",
        "proof_expiry_date": "2020-10-20"
      },
      "geolocation": {
        "latitude": 12.354,
        "longitude": 77.453
      },
      "bank_account": {
        "account_holder_name": "Rani Gupta",
        "account_number": "919017057965811",
        "ifsc_code": "UTIB0003093",
        "proof": "cc10460f-905d-4b37-8983-97a5a8afc07a"
      },
      "identity_proof": "2f4d93e0-b700-41b8-b78e-e130224cfb03",
      "signature": "434ceed567-53c5-3f68-ba3b-cbdc58526c64",
      "photo": "946848da-50bb-4957-a940-c164c0c71172"
    }
    

    JSON response:

    {
      "object": "kyc_request",
      "id": "6wq82c2ce-e38d-4b8e-85f3-wqfb7dc382f21",
      "status": "pending",
      "aadhaar_number": "1210",
      "pan": "K1PPG1998U",
      "name": "Rani Gupta",
      "father_name": "Rajesh Gupta",
      "spouse_name": null,
      "mother_name": "Neha Gupta",
      "email": "raj@example.com",
      "mobile": {
        "isd": "+91",
        "number": "8160597103"
      },
      "signature": "434ceed567-53c5-3f68-ba3b-cbdc58526c64",
      "photo": "946848da-50bb-4957-a940-c164c0c71172",
      "gender": "male",
      "date_of_birth": "1981-01-15",
      "marital_status": "married",
      "country_of_birth": "in",
      "address": {
        "city": "Delhi",
        "proof": "e17b7wb1-2204-40f2-b4b9-8012c3c36f73",
        "line_1": "E/&02",
        "line_2": "Opp SBI ATM",
        "line_3": "12th Main Road South Delhi",
        "country": "in",
        "pincode": "110001",
        "proof_back": "71a773fa-134c-4849-891e-df3a2s230f6f",
        "proof_type": "passport",
        "proof_number": "JXXXXXXA",
        "proof_issue_date": "2004-10-20",
        "proof_expiry_date": "2020-10-20"
      },
      "identity_proof": "6d0f4d71-aec3-4be6-8295-630e0fddaef6",
      "residential_status": "resident_individual",
      "occupation_type": null,
      "created_at": "2019-11-09T13:26:38.946+0530",
      "expires_at": "2019-11-09T13:26:38.946+0530",
      "otp": "9bbf32",
      "geolocation": {
        "latitude": 12.354,
        "longitude": 77.453
      },
      "bank_account": {
        "account_holder_name": "Rani Gupta",
        "account_number": "919017057965811",
        "ifsc_code": "UTIB0003093",
        "proof": "cc10460f-905d-4b37-8983-97a5a8afc07a"
      },
      "verification": {
        "status": "pending",
        "details": null,
        "details_verbose": null
      },
      "requirements": {
        "fields_needed": [
          "ipv_video"
        ]
      }
    }
    

    The endpoint is used to submit a KYC request to the platform.

    HTTP Request

    POST /v2/kyc_requests

    Query Parameters

    Name Mandatory* Type Comments
    name yes string name of the investor
    pan yes string should be a valid individual pan number
    email yes string email ID of the investor to be reported to AMC
    date_of_birth yes string date of birth in yyyy-mm-dd format
    mobile yes object
    aadhaar_number no string last 4 digits of aadhaar
    father_name no string mandatory if spouse_name is not mentioned
    spouse_name no string mandatory if father_name is not mentioned
    mother_name no string
    gender no string gender of the investor. Values permitted: male, female, transgender
    country_of_birth no string investor's country of birth in ISO 3601 2 alphabet code
    marital_status no string marital status of the investor. Values permitted: married, unmarried, others
    residential_status no string residential status of the investor. Values permitted: resident_individual
    occupation_type no string occupation of the investor. Values permitted: business, professional, self_employed, retired, housewife, student, public_sector, private_sector, government_sector, others
    address no object
    identity_proof no string (ID of File) PAN card image. File must be in jpg, jpeg, png or pdf format and size should not exceed 5 MB.
    ipv_video no string (ID of File) verification video of the investor. File must be in mp4 format and size should not exceed 12 MB.
    signature no string (ID of File) copy of the wet signature of the investor. File must be in jpg, jpeg, png or pdf format and size should not exceed 5 MB.
    photo no string (ID of File) investor's photo. File must be in jpg, jpeg, png or pdf format and size should not exceed 5 MB.
    geolocation no object Location details of the investor from where the kyc application is submitted
    bank_account no object Investor's bank account details

    * This API supports multi-step submission, so the KYC request can be initiated with essential parameters (marked as mandatory above). Rest can be updated anytime within expiry period and are also listed in response data in requirements.fields_needed

    * The mandatory parameters are required to generate the otp for video verification.

    * The state changes from pending to esign_required, which takes 1-2 minutes (approx.) in production environment due to bank account verification

    * Once the state changes to esign_required, Esign API should be used to create an esign object

    Mobile params

    Name Mandatory type Comments
    isd yes string isd code of country
    number yes string mobile number

    Address params

    Name Mandatory type Comments
    line_1 yes string address line 1
    line_2 no string address line 2
    line_3 no string address line 3
    city yes string city name
    pincode yes string valid area pincode
    country yes string country in ISO 3601 2 alphabet code
    proof yes string (ID of File) copy of the address proof. File must be in jpg, jpeg, png or pdf format and size should not exceed 5 MB.
    proof_back no string (ID of File) copy of the back side of the address proof. Required if proof_type is voter_id, passport and driving_licence. File must be in jpg, jpeg, png or pdf format and size should not exceed 5 MB.
    proof_type yes string one of passport, voter_id, driving_licence
    proof_number yes string valid number mentioned on the address proof
    proof_issue_date no string Required if proof_type is passport, driving_licence. Should be in past in yyyy-mm-dd format
    proof_expiry_date no string Required if proof_type is passport, driving_licence. Should be in future in yyyy-mm-dd format

    Geolocation

    Name Mandatory type Comments
    latitude yes float Geolocation latitude
    longitude yes float Geolocation longitude

    Bank Account

    Name Mandatory type Comments
    account_holder_name yes string Name of the bank account holder
    account_number yes string Account number on cancelled cheque document
    ifsc_code yes string IFSC code of the bank
    proof yes string (ID of File) cancelled cheque image. File must be in jpg, jpeg, png or pdf format and size should not exceed 5 MB.

    Fetch a kyc request

    curl -X GET "https://s.finprim.com/v2/kyc_requests/123"
      -H "Authorization: Bearer ACCESS_TOKEN"
    

    JSON response:

    {
      "object": "kyc_request",
      "id": "6wq82c2ce-e38d-4b8e-85f3-wqfb7dc382f21",
      "status": "rejected",
      "aadhaar_number": "1210",
      "pan": "K1PPG1998U",
      "name": "Rani Gupta",
      "father_name": "Rajesh Gupta",
      "spouse_name": null,
      "mother_name": "Neha Gupta",
      "email": "raj@example.com",
      "mobile": {
        "isd": "+91",
        "number": "8160597103"
      },
      "ipv_video": "02651d2a-38fc-42a2-8c20-221d10453b3c",
      "signature": "434ceed567-53c5-3f68-ba3b-cbdc58526c64",
      "photo": "946848da-50bb-4957-a940-c164c0c71172",
      "gender": "male",
      "date_of_birth": "1981-01-15",
      "marital_status": "married",
      "country_of_birth": "in",
      "address": {
        "city": "Delhi",
        "proof": "e17b7wb1-2204-40f2-b4b9-8012c3c36f73",
        "line_1": "E/&02",
        "line_2": "Opp SBI ATM",
        "line_3": "12th Main Road South Delhi",
        "country": "in",
        "pincode": "110001",
        "proof_back": "71a773fa-134c-4849-891e-df3a2s230f6f",
        "proof_type": "passport",
        "proof_number": "JXXXXXXA",
        "proof_issue_date": "2004-10-20",
        "proof_expiry_date": "2020-10-20"
      },
      "identity_proof": "6d0f4d71-aec3-4be6-8295-630e0fddaef6",
      "residential_status": "resident_individual",
      "occupation_type": null,
      "created_at": "2019-11-09T13:26:38.946+0530",
      "expires_at": "2019-11-09T13:26:38.946+0530",
      "otp": "9bbf32",
      "geolocation": {
        "latitude": 12.354,
        "longitude": 77.453
      },
      "bank_account": {
        "account_holder_name": "Rani Gupta",
        "account_number": "919017057965811",
        "ifsc_code": "UTIB0003093",
        "proof": "cc10460f-905d-4b37-8983-97a5a8afc07a"
      },
      "requirements": {
        "fields_needed": [
    
        ]
      },
      "verification": {
        "status": "rejected",
        "details": {
          "pan": "data_mismatch",
          "signature": "data_missing",
          "address.proof": "document_unclear"
        },
        "details_verbose": {
          "pan": {
            "code": "data_mismatch",
            "reason": "Invalid pan"
          },
          "signature": {
            "code": "data_missing",
            "reason": "Signature not available"
          },
          "address.proof": {
            "code": "document_invalid",
            "reason": "Proof of address not valid; Translation into english is required"
          }
        }
      }
    }
    

    The endpoint is used to fetch the details of a KYC request.

    HTTP Request

    GET /v2/kyc_requests/:id

    Query Parameters

    Parameter Mandatory Default Description
    id yes - id of the KYC Request

    Status Descriptions - verification.status

    Value Description
    pending The KYC request has been created. It will be sent to AMC when all the required fields are provided.
    esign_required Investor details document needs to be eSigned for the kyc request to be processed further.
    submitted The KYC request has been submitted to the AMC
    successful The KYC request has been successfully processed by the AMC
    rejected The KYC request has been rejected

    Verification Details

    Value Description
    data_mismatch The data provided in the input is not matching with the document
    document_invalid The provided document is not valid
    document_unclear The provided document is not clear to read
    data_missing The data point is completely missing

    Details Verbose

    Name Comments
    code Value is same as Verification Details
    reason Rejection messages separated by semicolon

    List all kyc requests

    curl -X GET "https://s.finprim.com/v2/kyc_requests?pan=K1PPG1998U&status=rejected,pending"
    -H "Authorization: Bearer ACCESS_TOKEN"
    

    JSON response:

    {
      "object": "list",
      "data": [
        {
          "object": "kyc_request",
          "id": "6wq82c2ce-e38d-4b8e-85f3-wqfb7dc382f21",
          "status": "rejected",
          "aadhaar_number": "1210",
          "pan": "K1PPG1998U",
          "name": "Rani Gupta",
          "father_name": "Rajesh Gupta",
          "spouse_name": null,
          "mother_name": null,
          "email": null,
          "mobile": null,
          "ipv_video": "02651d2a-38fc-42a2-8c20-221d10453b3c",
          "signature": null,
          "photo": null,
          "gender": "male",
          "date_of_birth": "1981-01-15",
          "marital_status": "married",
          "country_of_birth": "in",
          "address": {
            "city": "Delhi",
            "proof": "e17b7wb1-2204-40f2-b4b9-8012c3c36f73",
            "line_1": "E/&02",
            "line_2": "Opp SBI ATM",
            "line_3": "12th Main Road South Delhi",
            "country": "in",
            "pincode": "401012",
            "proof_back": "71a773fa-134c-4849-891e-df3a2s230f6f",
            "proof_type": "passport",
            "proof_number": "JXXXXXXA",
            "proof_issue_date": "2004-10-20",
            "proof_expiry_date": "2020-10-20"
          },
          "identity_proof": "6d0f4d71-aec3-4be6-8295-630e0fddaef6",
          "residential_status": "resident_individual",
          "occupation_type": null,
          "created_at": "2019-11-09T13:26:38.946+0530",
          "expires_at": "2019-11-09T13:26:38.946+0530",
          "otp": "9bbf32",
          "geolocation": {
            "latitude": 12.354,
            "longitude": 77.453
          },
          "bank_account": {
            "account_holder_name": "Rani Gupta",
            "account_number": "919017057965811",
            "ifsc_code": "UTIB0003093",
            "proof": "cc10460f-905d-4b37-8983-97a5a8afc07a"
          },
          "requirements": {
            "fields_needed": [
    
            ]
          },
          "verification": {
            "status": "rejected",
            "details": {
              "pan": "data_mismatch",
              "signature": "data_missing",
              "address.proof": "document_unclear"
            },
            "details_verbose": {
              "pan": {
                "code": "data_mismatch",
                "reason": "Invalid pan"
              },
              "signature": {
                "code": "data_missing",
                "reason": "Signature not available"
              },
              "address.proof": {
                "code": "document_invalid",
                "reason": "Proof of address not valid; Translation into english is required"
              }
            }
          }
        },
        {
          "object": "kyc_request",
          "id": "6wq82c2ce-e38d-4b8e-85f3-wqfb7dc382f21",
          "status": "pending",
          "aadhaar_number": "1210",
          "pan": "K1PPG1998U",
          "name": "Rani Gupta",
          "father_name": "Rajesh Gupta",
          "spouse_name": null,
          "mother_name": null,
          "email": null,
          "mobile": null,
          "signature": null,
          "photo": null,
          "gender": "male",
          "date_of_birth": "1981-01-15",
          "marital_status": "married",
          "country_of_birth": "in",
          "address": {
            "city": "Delhi",
            "proof": "e17b7wb1-2204-40f2-b4b9-8012c3c36f73",
            "line_1": "E/&02",
            "line_2": "Opp SBI ATM",
            "line_3": "12th Main Road South Delhi",
            "country": "in",
            "pincode": "401012",
            "proof_back": "71a773fa-134c-4849-891e-df3a2s230f6f",
            "proof_type": "passport",
            "proof_number": "JXXXXXXA",
            "proof_issue_date": "2004-10-20",
            "proof_expiry_date": "2020-10-20"
          },
          "identity_proof": "6d0f4d71-aec3-4be6-8295-630e0fddaef6",
          "residential_status": "resident_individual",
          "occupation_type": null,
          "created_at": "2019-11-09T13:26:38.946+0530",
          "expires_at": "2019-11-09T13:26:38.946+0530",
          "otp": "9bbf32",
          "geolocation": {
            "latitude": 12.354,
            "longitude": 77.453
          },
          "bank_account": {
            "account_holder_name": "Rani Gupta",
            "account_number": "919017057965811",
            "ifsc_code": "UTIB0003093",
            "proof": "cc10460f-905d-4b37-8983-97a5a8afc07a"
          },
          "requirements": {
            "fields_needed": [
              "ipv_video"
            ]
          },
          "verification": {
            "status": "pending",
            "details": null,
            "details_verbose": null
          }
        }
      ]
    }
    

    The endpoint is used to fetch the list of KYC requests.

    HTTP Request

    GET /v2/kyc_requests

    Query Parameters

    Name Mandatory* Type Comments
    pan No string PAN number
    status No string Can be pending, esign_required, submitted, successful, rejected. Multiple values are supported by , seperator.

    Update a kyc request

    curl -X POST "https://s.finprim.com/v2/kyc_requests/6wq82c2ce-e38d-4b8e-85f3-wqfb7dc382f21"
      -H "Authorization: Bearer ACCESS_TOKEN"
      -H "Content-Type: application/json"
      -d '{json_request}'
    

    JSON request:

    {
      "identity_proof": "1411ff9c-3b68-4c5c-bfe7-46f1a1cdd7f6",
      "ipv_video": "76e18d5f-e84a-478d-a836-4971f38d3814"
    }
    

    The endpoint is used to update the details of a KYC request

    JSON response:

    {
      "object": "kyc_request",
      "id": "6wq82c2ce-e38d-4b8e-85f3-wqfb7dc382f21",
      "status": "pending",
      "aadhaar_number": "1210",
      "pan": "K1PPG1998U",
      "name": "Rani Gupta",
      "father_name": "Rajesh Gupta",
      "spouse_name": null,
      "mother_name": "Neha Gupta",
      "email": "raj@example.com",
      "mobile": {
        "isd": "+91",
        "number": "8160597103"
      },
      "signature": "434ceed567-53c5-3f68-ba3b-cbdc58526c64",
      "photo": "946848da-50bb-4957-a940-c164c0c71172",
      "gender": "male",
      "date_of_birth": "1981-01-15",
      "marital_status": "married",
      "country_of_birth": "in",
      "address": {
        "city": "Delhi",
        "proof": "e17b7wb1-2204-40f2-b4b9-8012c3c36f73",
        "line_1": "E/&02",
        "line_2": "Opp SBI ATM",
        "line_3": "12th Main Road South Delhi",
        "country": "in",
        "pincode": "110001",
        "proof_back": "71a773fa-134c-4849-891e-df3a2s230f6f",
        "proof_type": "passport",
        "proof_number": "JXXXXXXA",
        "proof_issue_date": "2004-10-20",
        "proof_expiry_date": "2020-10-20"
      },
      "identity_proof": "1411ff9c-3b68-4c5c-bfe7-46f1a1cdd7f6",
      "ipv_video": "76e18d5f-e84a-478d-a836-4971f38d3814",
      "residential_status": "resident_individual",
      "occupation_type": null,
      "created_at": "2019-11-09T13:26:38.946+0530",
      "expires_at": "2019-11-09T13:26:38.946+0530",
      "otp": "9bbf32",
      "geolocation": {
        "latitude": 12.354,
        "longitude": 77.453
      },
      "bank_account": {
        "account_holder_name": "Rani Gupta",
        "account_number": "919017057965811",
        "ifsc_code": "UTIB0003093",
        "proof": "cc10460f-905d-4b37-8983-97a5a8afc07a"
      },
      "verification": {
        "status": "pending",
        "details": null,
        "details_verbose": null
      },
      "requirements": {
        "fields_needed": [
    
        ]
      }
    }
    

    HTTP Request

    POST/PATCH /v2/kyc_requests/:id

    Request/Response same as Create KYC Request

    Simulate a kyc request

    curl -X POST "https://s.finprim.com/v2/kyc_requests/6wq82c2ce-e38d-4b8e-85f3-wqfb7dc382f21/simulate"
      -H "Authorization: Bearer ACCESS_TOKEN"
      -H "Content-Type: application/json"
      -d '{json_request}'
    

    JSON request:

    {
      "status": "successful"
    }
    

    The endpoint is used to simulate the status of a KYC request

    JSON response:

    {
      "object": "kyc_request",
      "id": "6wq82c2ce-e38d-4b8e-85f3-wqfb7dc382f21",
      "status": "successful",
      "aadhaar_number": "1210",
      "pan": "K1PPG1998U",
      "name": "Rani Gupta",
      "father_name": "Rajesh Gupta",
      "spouse_name": null,
      "mother_name": "Neha Gupta",
      "email": "raj@example.com",
      "mobile": {
        "isd": "+91",
        "number": "8160597103"
      },
      "ipv_video": "02651d2a-38fc-42a2-8c20-221d10453b3c",
      "signature": "434ceed567-53c5-3f68-ba3b-cbdc58526c64",
      "photo": "946848da-50bb-4957-a940-c164c0c71172",
      "gender": "male",
      "date_of_birth": "1981-01-15",
      "marital_status": "married",
      "country_of_birth": "in",
      "address": {
        "city": "Delhi",
        "proof": "e17b7wb1-2204-40f2-b4b9-8012c3c36f73",
        "line_1": "E/&02",
        "line_2": "Opp SBI ATM",
        "line_3": "12th Main Road South Delhi",
        "country": "in",
        "pincode": "110001",
        "proof_back": "71a773fa-134c-4849-891e-df3a2s230f6f",
        "proof_type": "passport",
        "proof_number": "JXXXXXXA",
        "proof_issue_date": "2004-10-20",
        "proof_expiry_date": "2020-10-20"
      },
      "identity_proof": "6d0f4d71-aec3-4be6-8295-630e0fddaef6",
      "residential_status": "resident_individual",
      "occupation_type": null,
      "created_at": "2019-11-09T13:26:38.946+0530",
      "expires_at": "2019-11-09T13:26:38.946+0530",
      "otp": "9bbf32",
      "geolocation": {
        "latitude": 12.354,
        "longitude": 77.453
      },
      "bank_account": {
        "account_holder_name": "Rani Gupta",
        "account_number": "919017057965811",
        "ifsc_code": "UTIB0003093",
        "proof": "cc10460f-905d-4b37-8983-97a5a8afc07a"
      },
      "requirements": {
        "fields_needed": [
    
        ]
      },
      "verification": {
        "status": "successful",
        "details": null,
        "details_verbose": null
      }
    }
    

    HTTP Request

    POST /v2/kyc_requests/:id/simulate

    Query Parameters

    Name Mandatory* Type Comments
    status yes string expected status of the kyc request. Values permtted: successful, rejected, expired. For successful or rejected, the KYC request must be in submitted state. For expired, the KYC request must be in pending or esign_required state

    Esigns

    Use this to complete the Esign process for the KYC request.

    Endpoints:

    POST /v2/esigns
    GET /v2/esigns/:id

    Esign Object

    {
      "object": "esign",
      "id": "8f05d378-3cf2-4e57-83c8-5ad767f21f12",
      "type": "aadhaar",
      "kyc_request": "c6b524ed-fcbd-4e37-9348-6fee95f7d997",
      "redirect_url": "http://s.finprim.com/v2/esigns/8f05d378-3cf2-4e57-83c8-5ad767f21f12/sign?token=ce825801-beab-4868-8fd8-5c4009e7f112",
      "status": "pending",
      "postback_url": "http://localhost:3000",
      "created_at": "2020-06-22T13:15:12.308+0530"
    }
    
    Attribute Type Comments
    object string Value is esign. String representing the object type. Objects of the same type share the same value
    id string Unique identifier of the esign object
    type string Type of the esign. Can be aadhaar
    kyc_request string KYC Request for which this esign is being processed for
    redirect_url string Url for starting the esign process
    status string Status of the esign. Can be pending, successful
    postback_url string Url to which you will be redirected once esign process is complete
    created_at string The timestamp at which the esign object is created

    * The redirect_url can be used multiple times in case the user is not able to complete the esign process

    Create an esign

    curl -X POST "https://s.finprim.com/v2/esigns"
      -H "Authorization: Bearer ACCESS_TOKEN"
      -H "Content-Type: application/json"
      -d '{json_request}'
    

    JSON request:

    {
      "kyc_request": "c6b524ed-fcbd-4e37-9348-6fee95f7d997",
      "postback_url": "http://localhost:3000"
    }
    

    JSON response:

    {
      "object": "esign",
      "id": "8f05d378-3cf2-4e57-83c8-5ad767f21f12",
      "type": "aadhaar",
      "kyc_request": "c6b524ed-fcbd-4e37-9348-6fee95f7d997",
      "redirect_url": "http://s.finprim.com/v2/esigns/8f05d378-3cf2-4e57-83c8-5ad767f21f12/sign?token=ce825801-beab-4868-8fd8-5c4009e7f112",
      "status": "pending",
      "postback_url": "http://localhost:3000",
      "created_at": "2020-06-22T13:15:12.308+0530"
    }
    

    The endpoint is used to create an esign

    HTTP Request

    POST /v2/esigns

    Query Parameters

    Name Mandatory* Type Comments
    kyc_request yes string id of the kyc_request to which it is related
    postback_url yes string The URL to which you want be redirected once the esign process is complete.

    Postback response

    After the esign process is completed, we redirect the user to postback_url with the following query parameters

    Name Value
    esign id of the esign object
    status status of the esign.

    Fetch an esign

    curl -X GET "https://s.finprim.com/v2/esigns/8f05d378-3cf2-4e57-83c8-5ad767f21f12"
      -H "Authorization: Bearer ACCESS_TOKEN"
    

    JSON response:

    {
      "object": "esign",
      "id": "8f05d378-3cf2-4e57-83c8-5ad767f21f12",
      "type": "aadhaar",
      "kyc_request": "c6b524ed-fcbd-4e37-9348-6fee95f7d997",
      "redirect_url": "http://s.finprim.com/v2/esigns/8f05d378-3cf2-4e57-83c8-5ad767f21f12/sign?token=ce825801-beab-4868-8fd8-5c4009e7f112",
      "status": "successful",
      "postback_url": "http://localhost:3000",
      "created_at": "2020-06-22T13:15:12.308+0530"
    }
    

    The endpoint is used to fetch an esign

    HTTP Request

    GET /v2/esigns/:id

    Query Parameters

    Name Mandatory* Type Comments
    id yes string id of the esign

    Parses

    Represents parse operation. This API can be used to parse a consolidated account statement or CAS file. We support CAS files - Detailed type of Karvy and CAMS.

    Upload CAS file in Files API Refer before using parser service. File service returns id once you have uploaded the file, use this to perform parsing.

    Note: Non commercial transactions are not parsed.

    A typical parse object contains the following fields.

    Parse Object

    {
      "id": "parse_a7b0f278604d46d8a847fde20da1b4e7",
      "object": "parse",
      "status": "processed",
      "file": "file_fe8a573f4a6b4a68be04d26e7aa164a0",
      "outcome": [
        {
          "pan": "AMXXXXXX9M",
          "advisor": "ARN-2590",
          "registrar": "FTAMIL",
          "folio_number": "180111958/0",
          "transactions": [
            {
              "date": "2013-01-31",
              "type": "purchase",
              "amount": 11000,
              "units": 44.972,
              "price": 244.595,
              "unit_balance": 44.972
            }
          ],
          "scheme_code": "FTI034",
          "scheme_name": "0349905131566 Franklin India Taxshield - GROWTH",
          "opening_balance": 0,
          "closing_balance": 44.972,
          "calculated_closing_balance": 44.972
        }
      ],
      "reason": null,
      "created_at": "2020-06-18T14:16:13+05:30"
    }
    
    Attribute Type Comments
    object string Value is parse. String representing the object type. Objects of the same type share the same value.
    id string Unique identifier for the parse object created
    file string File id used to create parse request
    status string Status of the parse request. Can be pending, processed, and failed
    outcome list Contains the transactions parsed from the file
    reason string Contains reason if status is failed
    created_at timestamp Date and time when the parse object was created

    Outcome attributes

    Attribute Type Description
    pan string PAN number of the investor
    advisor string ARN code or RIA code of the distributor/advisor as seen in the CAS file
    registrar string RTA identifier
    folio_number string Folio number
    scheme_code string Scheme code. Refer Single Fund Schemes Detail API for scheme code details
    scheme_name string Scheme name as it appears in the CAS file. Any scheme name which is spread across more than one line is truncated.
    reverse_product_code string Unique code to identify a scheme.
    transactions list List of transactions. The order will remain the same as in the CAS file.
    opening_balance decimal Opening balance
    closing_balance decimal Closing balance
    calculated_closing_balance decimal Computed closing balance in parser service based on difference between credit and debits in the transactions. This can be used for reconciliation purposes.

    Transaction attributes

    Attribute Type Description
    date date Date of transaction
    type string Supported transaction types are sip, purchase, redemption, switch_in, switch_out and reversal
    amount decimal Refers to the amount which investor have invested, transferred or withdrawn or the dividend amount being paid or reinvested
    units decimal Number of units allotted or redeemed
    price decimal Transaction NAV
    unit_balance decimal Holding units after the end of this particular transaction

    Create a parse

    curl -X POST "https://s.finprim.com/v2/parses"
    -H "Authorization: Bearer JWTTOKEN"
    -d
    '{
        "file" : "file_fe8a573f4a6b4a68be04d26e7aa164a0",
        "password": "password"
    }'
    

    The above command returns a JSON similar to one below:

    {
      "id": "parse_a7b0f278604d46d8a847fde20da1b4e7",
      "object": "parse",
      "status": "pending",
      "file": "file_fe8a573f4a6b4a68be04d26e7aa164a0",
      "outcome": null,
      "created_at": "2020-06-18T14:16:13+05:30"
    }
    

    This API is for submitting a request to parse the file.

    HTTP Request

    POST /v2/parses

    Query Parameters

    Parameter Mandatory Default Description
    file yes - id of the file to parse. Refer file-operations to upload a file. File type should be in pdf format.
    password no - Password to open the CAS file.

    Fetch a parse

    curl "https://s.finprim.com/v2/parses/parse_a7b0f278604d46d8a847fde20da1b4e7"
      -H "Authorization: Bearer JWTTOKEN"
    

    The above command returns a JSON similar to one below

    {
      "id": "parse_a7b0f278604d46d8a847fde20da1b4e7",
      "object": "parse",
      "status": "processed",
      "file": "file_fe8a573f4a6b4a68be04d26e7aa164a0",
      "outcome": [
        {
          "pan": "AMXXXXXX9M",
          "advisor": "ARN-2590",
          "registrar": "FTAMIL",
          "folio_number": "180111958/0",
          "scheme_code": "FTI034",
          "scheme_name": "Franklin India Taxshield - GROWTH",
          "reverse_product_code": "FITGP",
          "transactions": [
            {
              "date": "2013-01-31",
              "type": "purchase",
              "amount": 11000,
              "units": 44.972,
              "price": 244.595,
              "unit_balance": 44.972
            },
            {
              "date": "2013-02-01",
              "type": "sip",
              "amount": 1000,
              "units": 4.098,
              "price": 244.0149,
              "unit_balance": 49.07
            }
          ],
          "opening_balance": 0,
          "closing_balance": 49.07,
          "calculated_closing_balance": 49.07
        }
      ],
      "reason": null,
      "created_at": "2020-06-18T14:16:13+05:30"
    }
    

    This API is used to fetch the parsed details.

    HTTP Request

    GET /v2/parses/:id

    Query Parameters

    Parameter Mandatory Default Description
    id yes - id returned from create parse request api.

    MF Investment Accounts

    You need to create an investment account for your investors before you can start accepting orders. Any orders placed via an investment account and folios associated with those orders are organized under the investment account. When you migrate folios, folios having the same pans and holding pattern combination are organized under the investment accounts of matching pans and holding pattern. mf_investment_account object represents such investment accounts.

    Endpoints:

    POST /v2/mf_investment_accounts
    PATCH /v2/mf_investment_accounts
    GET /v2/mf_investment_accounts/:id
    GET /v2/mf_investment_accounts

    MF Investment Account Object

    {
      "object": "mf_investment_account",
      "id": "mfia_14bafabfbfbc423d9b54412dd577981b",
      "old_id": 110,
      "primary_investor_pan": "ACCPP55K7L",
      "second_investor_pan": null,
      "third_investor_pan": null,
      "primary_investor_old_id": 109,
      "second_investor_old_id": null,
      "third_investor_old_id": null,
      "holding_pattern": "single"
    }
    
    Attribute Type Comments
    object string Value is mf_investment_account. String representing the object type. Objects of the same type share the same value
    id string Unique identifier of the mf_investment_account object
    old_id integer This id is the V1 id of this investment account object. We have provided this id for backward compatibility purposes, and you can use this id in V1 APIs. However, please use V2 object ids and V2 APIs wherever possible
    primary_investor_pan string PAN of the first holder
    second_investor_pan string PAN of the second holder
    third_investor_pan string AN of the third holder
    primary_investor_old_id string V1 identifier of the first investor object attached to this investment account
    second_investor_old_id string V1 identifier of the second investor object attached to this investment account
    third_investor_old_id string V1 identifier of the third investor object attached to this investment account
    holding_pattern string this value indicates the holding nature of the folios that are mapped against this investment account. For example, if the holding pattern is single, you can create transactions against investor's folios where the investor is the primary investor and holding pattern is single.
    Possible values: single, joint, either_or_survivor, anyone_or_survivor, first_or_survivor

    Create a mf investment account

    POST /v2/mf_investment_accounts

    curl -X POST "https://s.finprim.com/v2/mf_investment_accounts"
      -H "Authorization: Bearer ACCESS_TOKEN"
    

    JSON Request:

    {
      "primary_investor_old_id": 109,
      "holding_pattern": "single"
    }
    

    JSON Response:

    {
      "object": "mf_investment_account",
      "id": "mfia_14bafabfbfbc423d9b54412dd577981b",
      "old_id": 110,
      "primary_investor_pan": "ACCPP55K7L",
      "second_investor_pan": null,
      "third_investor_pan": null,
      "primary_investor_old_id": 109,
      "second_investor_old_id": null,
      "third_investor_old_id": null,
      "holding_pattern": "single"
    }
    

    Request Parameters

    Name Mandatory Type Comments
    primary_investor_old_id yes string Provide V1 investor id of the first holder
    holding_pattern no string Provide holding pattern for the investment account. Supported values: single

    Update a mf investment account

    PATCH /v2/mf_investment_accounts/:id

    This API lets you associate an investor with an investment account. This will be necessary when you avail FP's folio migration facility. When folios are migrated, corresponding investment accounts are created and folios are organized under the investment accounts. No investor objects are created. Therefore, there will be investment accounts without any investor associated with them. When you onboard an investor, you can search whether there are any investment accounts are present or not. If they are present, you can associate an investor with the investment account using this API.

    curl -X PATCH "https://s.finprim.com/v2/mf_investment_accounts/mfia_14bafabfbfbc423d9b54412dd577981b"
      -H "Authorization: Bearer ACCESS_TOKEN"
    

    JSON Request:

    {
      "id": "mfia_14bafabfbfbc423d9b54412dd577981b",
      "primary_investor_old_id": 109
    }
    

    JSON Response:

    {
      "object": "mf_investment_account",
      "id": "mfia_14bafabfbfbc423d9b54412dd577981b",
      "old_id": 110,
      "primary_investor_pan": "ACCPP55K7L",
      "second_investor_pan": null,
      "third_investor_pan": null,
      "primary_investor_old_id": 109,
      "second_investor_old_id": null,
      "third_investor_old_id": null,
      "holding_pattern": "single"
    }
    

    Request Parameters

    Name Mandatory Type Comments
    id yes string V2 Id of the investment account.
    primary_investor_old_id yes integer Provide V1 investor id of the first holder. The pan of the investor should match with the primary_investor_pan of the investment account.

    Fetch a mf investment account

    GET /v2/mf_investment_accounts/:id

    This API is used to fetch a given investment account by its V2 identifier.

    curl -X GET "https://s.finprim.com/v2/mf_investment_accounts/mfia_14bafabfbfbc423d9b54412dd577981b"
      -H "Authorization: Bearer ACCESS_TOKEN"
    

    JSON Response:

    {
      "object": "mf_investment_account",
      "id": "mfia_14bafabfbfbc423d9b54412dd577981b",
      "old_id": 110,
      "primary_investor_pan": "ACCPP55K7L",
      "second_investor_pan": null,
      "third_investor_pan": null,
      "primary_investor_old_id": 109,
      "second_investor_old_id": null,
      "third_investor_old_id": null,
      "holding_pattern": "single"
    }
    

    Query Parameters

    Name Mandatory Type Comments
    mf_investment_account_id yes string V2 id of the investment account

    List all mf investment accounts

    GET /v2/mf_investment_accounts

    curl -X GET "https://s.finprim.com/v2/mf_investment_accounts"
      -H "Authorization: Bearer ACCESS_TOKEN"
    

    JSON Response:

    {
      "object": "list",
      "data": [
        {
          "object": "mf_investment_account",
          "id": "mfia_14bafabfbfbc423d9b54412dd577981b",
          "old_id": 110,
          "primary_investor_pan": "ACCPP55K7L",
          "second_investor_pan": null,
          "third_investor_pan": null,
          "primary_investor_old_id": 109,
          "second_investor_old_id": null,
          "third_investor_old_id": null,
          "holding_pattern": "single"
        },
        {
          "object": "mf_investment_account",
          "id": "mfia_24bafbbfbfbc423d9b54412dc57a9a11",
          "old_id": 111,
          "primary_investor_pan": "PCCPK55K7L",
          "second_investor_pan": null,
          "third_investor_pan": null,
          "primary_investor_old_id": 112,
          "second_investor_old_id": null,
          "third_investor_old_id": null,
          "holding_pattern": "single"
        }
      ]
    }
    

    Query Parameters

    Name Mandatory Type Comments
    primary_investor_pan no string Filter by primary investor pan.
    second_investor_pan no string Filter by second investor pan.
    third_investor_pan no string Filter by third investor pan.
    holding_pattern no string Filter by holding_pattern of investment account.
    investor no string Accepts a PAN as a value. Using this option, you can filter all the investment accounts in which this PAN is present either as primary, secondary or third investor

    Note:

    The response contains maximum of 100 mf investment accounts ordered by the created date

    MF Purchases

    Represents a mutual fund purchase order. The purchase order can be a lump sum purchase order or it can be a purchase order created via a purchase plan.

    Endpoints:

    POST /v2/mf_purchases
    PATCH /v2/mf_purchases
    GET /v2/mf_purchases/:id
    GET /v2/mf_purchases

    MF Purchase Object

    {
      "object": "mf_purchase",
      "id": "mfp_177177219f634373b01072986d2eea7d",
      "old_id": 9123,
      "mf_investment_account": "mfia_367a75826694614a539c0f82b196027",
      "folio_number": "31171511",
      "state": "pending",
      "amount": 10000.0,
      "scheme": "INF173K01FE6",
      "gateway": "rta",
      "traded_on": null,
      "scheduled_on": "2020-04-07",
      "created_at": "2020-04-06T15:32:52+05:30",
      "succeeded_at": null,
      "submitted_at": null,
      "reversed_at": null,
      "failed_at": null,
      "source_ref_id": "71312fdc-b2da-46ca-90a3-c3d9b99bfca0",
      "user_ip": "10.0.128.12",
      "server_ip": "126.1.10.1",
      "plan": null,
      "initiated_by": "investor",
      "initiated_via": "web",
      "euin": null,
      "distributor_id": null,
      "type": "additional_purchase",
      "allotted_units": null,
      "purchased_amount": null,
      "purchased_price": null,
      "confirmed_at": null
    }
    
    Attribute Type Comments
    object string Value is mf_purchase. String representing the object type. Objects of the same type share the same value
    id string Unique identifier of the mf_purchase object
    old_id integer This id is the V1 id of this purchase object. We have provided this id for backward compatibility purposes, and you can use this id in V1 APIs. However, please use V2 object ids and V2 APIs wherever possible
    mf_investment_account string This id is the V2 id of the investment account, and you can identify the investment account associated with the purchase order using this id
    folio_number string This value represents the mutual fund folio number. Using the folio number, you can determine the folio in which the investor has made the purchase. In case of fresh purchases, the folio number will be available only when the order becomes successful.
    state string State of the purchase order. Possible values: pending, confirmed, sumitted, successful, failed, cancelled, reversed
    amount decimal Purchase amount in Rupees
    allotted_units decimal Number of units allotted for this purchase transaction. For example, the user might have placed a purchase order for Rs. 500 at a NAV of Rs. 296.0196. A stamp duty at 0.005% of Rs. 500 = 0.03(0.025 rounded up to 0.03) might get applied and the actual investment amount would be 500 - 0.03 = Rs. 499.97. Units allotted = 499.97/296.0196 = 1.68897600024 = 1.689 (Rounded up to 3 decimal points). The value will be available only after the order is submitted to the order gateway and is successfully processed
    purchased_amount decimal The actual purchase amount. For example, the user might have placed a purchase order for Rs. 500 at a NAV of Rs. 296.0196. A stamp duty at 0.005% of Rs. 500 = 0.03(0.025 rounded up to 0.03) might get applied and the actual investment amount would be 500 - 0.03 = Rs. 499.97. The value will be available only after the order is submitted to the order gateway and is successfully processed.
    purchased_price decimal NAV at which the trade happened
    scheme string isin of the scheme in which the investment was made
    type string This value indicates whether this purchase order is a fresh purchase or an additional purchase in an existing folio. Possible values: purchase, additional_purchase
    plan string The V2 object id of the plan with which this purchase is associated. This value will be available only if this purchase order is created by a plan
    scheduled_on string The date on which the order is scheduled for submission to the order gateway(bse or rta) for processing
    traded_on string The date on which the trade happened. Please note that the trade will happen after the order is submitted to the order gateway
    created_at string The time at which the order is created
    confirmed_at string The time at which the order is confirmed
    submitted_at string The time at which the order is submitted to the order gateway
    succeeded_at string The time at which the order is processed successfully
    failed_at string The time at which the order is failed
    reversed_at string The time at which the order is reversed
    gateway string The gateway through which the order was submitted for processing. Possible values: rta, ,bse
    source_ref_id string An identifier that is unique across orders of all types(purchases, redemptions, and switch). This is not generated by FP and is populated by API consumers for identification purposes. (ideally an auto generated identifier / uuid to identify the order in your application)
    user_ip string IP address of end user who has initiated the transaction.
    server_ip string IP address of server through which the request to create this transaction was made.
    euin string Unique identity number of the employee / relationship manager/ sales person of the distributor who has advised or interacted with the investor in any other manner for this purchase order.
    distributor_id string The id of the distributor/ria associated with the purchase order.
    initiated_by string The entity/person who has initiated this purchase. Possible values: investor, distributor
    initiated_via string The medium via which this transaction was initiated. Possible values: mobile_app, mobile_app_android, mobile_app_ios, mobile_web_android, mobile_web_ios, mobile_web, web

    Create a MF Purchase

    POST /v2/mf_purchases

    curl -X POST "https://s.finprim.com/v2/mf_purchases"
      -H "Authorization: Bearer ACCESS_TOKEN"
    

    JSON Request:

    {
      "mf_investment_account": "mfia_367a75826694614a539c0f82b196027",
      "scheme": "INF173K01FE6",
      "folio_number": "31171511",
      "amount": 10000,
      "user_ip": "10.0.128.12",
      "server_ip": "126.1.10.1",
      "source_ref_id": "71312fdc-b2da-46ca-90a3-c3d9b99bfca0",
      "euin": null
    }
    

    JSON Response:

    {
      "object": "mf_purchase",
      "id": "mfp_177177219f634373b01072986d2eea7d",
      "old_id": 9123,
      "mf_investment_account": "mfia_367a75826694614a539c0f82b196027",
      "folio_number": "31171511",
      "state": "pending",
      "amount": 10000.0,
      "scheme": "INF173K01FE6",
      "gateway": "rta",
      "traded_on": null,
      "scheduled_on": "2020-04-07",
      "created_at": "2020-04-06T15:32:52+05:30",
      "succeeded_at": null,
      "submitted_at": null,
      "reversed_at": null,
      "failed_at": null,
      "source_ref_id": "71312fdc-b2da-46ca-90a3-c3d9b99bfca0",
      "user_ip": "10.0.128.12",
      "server_ip": "126.1.10.1",
      "plan": null,
      "initiated_by": "investor",
      "initiated_via": "web",
      "euin": null,
      "distributor_id": null,
      "type": "additional_purchase",
      "allotted_units": null,
      "purchased_amount": null,
      "purchased_price": null,
      "confirmed_at": null
    }
    

    Request Parameters

    Name Mandatory Type Comments
    mf_investment_account yes string Provide the V2 id of the investment account against which this order must be placed.
    scheme yes string Provide the isin of the scheme for which this order must be placed.
    folio_number no string Provide the folio number mapped against the investment account if you want to make an additional purchase against a folio.
    amount yes integer Provide purchase amount in Rupees.
    • if In case of fresh purchases, the amount should be between min_initial_investment and max_initial_investment and should be a multiple of initial_investment_multiples
    • In case of additional purchases, the amount should be between min_additional_investment and max_additional_investment and should be a multiple of additional_investment_multiples

    Each scheme has different initial investment amount constraints or additional investment constraints. You can fetch scheme details using Fund Scheme Details API to know the values for such constraints.

    user_ip no string Provide IP address of the end-user.
    server_ip no string Provide IP address of the server through which the request to create this order is made.
    source_ref_id no string An identifier that is unique across orders of all types(purchases, redemptions, and switch). This is not generated by FP and is populated by API consumers for identification purposes. (ideally an auto generated identifier / uuid to identify the order in your application).
    euin no string Provide EUIN associated with the distributor through which the order is being placed.

    Update a MF Purchase

    PATCH /v2/mf_purchases

    curl -X PATCH "https://s.finprim.com/v2/mf_purchases"
      -H "Authorization: Bearer ACCESS_TOKEN"
    

    JSON Request:

    {
      "id": "mfp_177177219f634373b01072986d2eea7d",
      "state": "confirmed"
    }
    

    JSON Response:

    {
      "object": "mf_purchase",
      "id": "mfp_177177219f634373b01072986d2eea7d",
      "old_id": 9123,
      "mf_investment_account": "mfia_167a75826694614a539c0f82b196027",
      "folio_number": "39171511",
      "state": "confirmed",
      "amount": 10000.0,
      "scheme": "INF173K01FE6",
      "gateway": "rta",
      "traded_on": null,
      "scheduled_on": "2020-04-07",
      "created_at": "2020-04-06T15:32:52+05:30",
      "succeeded_at": null,
      "submitted_at": null,
      "reversed_at": null,
      "failed_at": null,
      "source_ref_id": "71312fdc-b2da-46ca-90a3-c3d9b99bfca0",
      "user_ip": "10.0.128.12",
      "server_ip": "126.1.10.1",
      "plan": null,
      "initiated_by": "investor",
      "initiated_via": "web",
      "euin": null,
      "distributor_id": null,
      "type": "additional_purchase",
      "allotted_units": null,
      "purchased_amount": null,
      "purchased_price": null,
      "confirmed_at": "2020-04-06T20:32:52+05:30"
    }
    

    Request Parameters

    Name Mandatory Type Comments
    id yes string V2 Id of the purchase order.
    state yes string New state of the purchase order. Supported values: confirmed

    Fetch a MF Purchase

    GET /v2/mf_purchases/:id

    curl -X GET "https://s.finprim.com/v2/mf_purchases/mfp_177177219f634373b01072986d2eea7d"
      -H "Authorization: Bearer ACCESS_TOKEN"
    

    This API is used to fetch a given purchase order by its identifier.

    Query Parameters

    Name Mandatory Type Comments
    id yes string V2 or V1 id of the purchase order.

    JSON Response:

    {
      "object": "mf_purchase",
      "id": "mfp_177177219f634373b01072986d2eea7d",
      "old_id": 9123,
      "mf_investment_account": "mfia_367a75826694614a539c0f82b196027",
      "folio_number": "31171511",
      "state": "pending",
      "amount": 10000.0,
      "scheme": "INF173K01FE6",
      "gateway": "rta",
      "traded_on": null,
      "scheduled_on": "2020-04-07",
      "created_at": "2020-04-06T15:32:52+05:30",
      "succeeded_at": null,
      "submitted_at": null,
      "reversed_at": null,
      "failed_at": null,
      "source_ref_id": "71312fdc-b2da-46ca-90a3-c3d9b99bfca0",
      "user_ip": "10.0.128.12",
      "server_ip": "126.1.10.1",
      "plan": null,
      "initiated_by": "investor",
      "initiated_via": "web",
      "euin": null,
      "distributor_id": null,
      "type": "additional_purchase",
      "allotted_units": null,
      "purchased_amount": null,
      "purchased_price": null,
      "confirmed_at": null
    }
    

    List all MF Purchases

    GET /v2/mf_purchases

    curl -X GET "https://s.finprim.com/v2/mf_purchases"
      -H "Authorization: Bearer ACCESS_TOKEN"
    

    This API used to fetch all purchase orders.

    JSON Response:

    {
      "object": "list",
      "data": [
        {
          "object": "mf_purchase",
          "id": "mfp_177177219f634373b01072986d2eea7d",
          "old_id": 9123,
          "mf_investment_account": "mfia_367a75826694614a539c0f82b196027",
          "folio_number": "31171511",
          "state": "pending",
          "amount": 10000.0,
          "scheme": "INF173K01FE6",
          "gateway": "rta",
          "traded_on": null,
          "scheduled_on": "2020-04-07",
          "created_at": "2020-04-06T15:32:52+05:30",
          "succeeded_at": null,
          "submitted_at": null,
          "reversed_at": null,
          "failed_at": null,
          "source_ref_id": "71312fdc-b2da-46ca-90a3-c3d9b99bfca0",
          "user_ip": "10.0.128.12",
          "server_ip": "126.1.10.1",
          "plan": null,
          "initiated_by": "investor",
          "initiated_via": "web",
          "euin": null,
          "distributor_id": null,
          "type": "additional_purchase",
          "allotted_units": null,
          "purchased_amount": null,
          "purchased_price": null,
          "confirmed_at": null
        },
        {
          "object": "mf_purchase",
          "id": "mfp_266177219f634373b01072986d2eea4d",
          "old_id": 9123,
          "mf_investment_account": "mfia_177a85826694614a531c0f82b196022",
          "folio_number": "11171611",
          "state": "pending",
          "amount": 10000.0,
          "scheme": "INF373K01FE1",
          "gateway": "rta",
          "traded_on": null,
          "scheduled_on": "2020-02-07",
          "created_at": "2020-03-06T15:32:52+05:30",
          "succeeded_at": null,
          "submitted_at": null,
          "reversed_at": null,
          "failed_at": null,
          "source_ref_id": "71312fdc-b2da-46ca-90a3-c3d9b99bfca0",
          "user_ip": "10.0.128.12",
          "server_ip": "126.1.10.1",
          "plan": null,
          "initiated_by": "investor",
          "initiated_via": "mobile_app",
          "euin": null,
          "distributor_id": null,
          "type": "additional_purchase",
          "allotted_units": null,
          "purchased_amount": null,
          "purchased_price": null,
          "confirmed_at": null
        }
      ]
    }
    

    Query Parameters

    Name Mandatory Type Comments
    mf_investment_account no string The investment account against which the purchases are made.

    Note:

    The response can contain 100 latest orders at max.

    Mf Redemptions

    Represents a mutual fund sell order. You can create a redemption order via Create Redemption order API or the redemption order can be created via a redemption plan.

    Endpoints:

    POST /v2/mf_redemptions
    PATCH /v2/mf_redemptions
    GET /v2/mf_redemptions/:id
    GET /v2/mf_redemptions

    MF Redemption Object

    {
      "object": "mf_redemption",
      "id": "mfr_15f8d86bae614801bab5accaed131abc",
      "old_id": 6597,
      "mf_investment_account": "mfia_189111b00566431db0dace5332db519c",
      "folio_number": "15075102",
      "state": "pending",
      "amount": 10000.0,
      "scheme": "INF173K01FQ0",
      "redemption_mode": "normal",
      "traded_on": null,
      "failed_at": null,
      "plan": null,
      "euin": null,
      "distributor_id": null,
      "units": null,
      "redeemed_price": null,
      "redeemed_units": null,
      "redeemed_amount": null,
      "redemption_bank_account_number": null,
      "redemption_bank_account_ifsc_code": null,
      "scheduled_on": "2020-04-07",
      "created_at": "2020-04-07T14:50:23+05:30",
      "succeeded_at": null,
      "submitted_at": null,
      "reversed_at": null,
      "gateway": "rta",
      "initiated_by": "investor",
      "initiated_via": "web",
      "source_ref_id": "fad6ca01-a002-46ab-8e5c-ea6fe195a5de",
      "user_ip": "10.0.128.12",
      "server_ip": "126.1.10.1"
    }
    
    Attribute Type Comments
    object string Value is mf_redemption. String representing the object type. Objects of the same type share the same value
    id string Unique identifier of the mf_redemption object
    old_id integer This id is the V1 id of this redemption object. We have provided this id for backward compatibility purposes, and you can use this id in V1 APIs. However, please use V2 object ids and V2 APIs wherever possible
    mf_investment_account string This id is the V2 id of the investment account, and you can identify the investment account associated with the redemption order using this id
    folio_number string This value represents the mutual fund folio number. Using the folio number, you can determine the folio in which the investor has made the redemption.
    state string State of the redemption order. Possible values: pending, confirmed, sumitted, successful, failed, cancelled, reversed
    amount decimal

    You can create a redemption order for a particular amount or you can create a redemption order for a particular number of units. If the redemption order was created for a specific amount, the value will not be empty. It will be empty otherwise.

    Please note that if the redemption amount and units are both empty, the entire holding amount would be redeemed upon successful processing of the order.

    units decimal

    You can create a redemption order for a particular amount or you can create a redemption order for a particular number of units. If the redemption order was created to redeem a certain number of units, the value will not be empty. It will be empty otherwise.

    Please note that if the redemption amount and units are both empty, the entire holding amount would be redeemed upon successful processing of the order.

    redeemed_amount decimal The actual amount that was redeemed.
    redeemed_units decimal The actual number of units that were deducted from the investors holdings after the redemption order was processed by the order gateway.
    redeemed_price decimal The NAV at which the redemption order was processed.
    scheme string The isin of the scheme from which the redemption has to be made.
    plan string The V2 object id of the plan with which this rdemption is associated. This value will be available only if this redemption order is created by a plan.
    scheduled_on string The date on which the order is scheduled for submission to the order gateway(bse or rta) for processing.
    traded_on string The date on which the trade happened. Please note that the trade will happen after the order is submitted to the order gateway.
    redemption_mode string Mode of redemption:

    normal: In this mode, FP sends orders via order gateway as it does for other types of orders. Usually, the investor will receive the redemption proceeds in the bank account after two to three working days depending on TAT for redemption proceeds defined by AMCs. You can place redemption orders for any schemes(including liquid funds) in this mode.

    instant: This mode is only applicable for liquid fund schemes and the investor will receive the redemption proceeds in the bank account instantly on successfully placing the redemption order. This mode is currently supported by a few AMCs as of now. Click here to know more

    redemption_bank_account_number string This value indicates the bank account number in which the instant redemption proceeds have been deposited. This value will be null if the redemption mode is normal.
    redemption_bank_account_ifsc_code string This value indicates the IFSC code of the bank account in which the instant redemption proceeds have been deposited. This value will be null if the redemption mode is normal.
    created_at string The time at which the order is created
    submitted_at string The time at which the order is submitted to the order gateway
    succeeded_at string The time at which the order is processed successfully
    failed_at string The time at which the order is failed
    reversed_at string The time at which the order is reversed
    gateway string The gateway through which the order was submitted for processing. Possible values: rta, ,bse
    source_ref_id string An identifier that is unique across orders of all types(purchases, redemptions, and switch). This is not generated by FP and is populated by API consumers for identification purposes. (ideally an auto generated identifier / uuid to identify the order in your application).
    user_ip string IP address of end user who has initiated the transaction.
    server_ip string IP address of server through which the request to create this transaction was made.
    euin string Unique identity number of the employee / relationship manager/ sales person of the distributor who has advised or interacted with the investor in any other manner for this purchase order.
    distributor_id string The id of the distributor/ria associated with the redemption order.
    initiated_by string The entity/person who has initiated this redemption. Possible values: investor, distributor
    initiated_via string The medium via which this transaction was initiated. Possible values: mobile_app, mobile_app_android, mobile_app_ios, mobile_web_android, mobile_web_ios, mobile_web, web

    Create a MF Redemption

    POST /v2/mf_redemptions

    curl -X POST "https://s.finprim.com/v2/mf_redemptions"
      -H "Authorization: Bearer ACCESS_TOKEN"
    

    JSON Request:

    {
      "mf_investment_account": "mfia_189111b00566431db0dace5332db519c",
      "folio_number": "15075102",
      "amount": 10000,
      "isin": "INF173K01FQ0",
      "units": null,
      "user_ip": "10.0.128.12",
      "server_ip": "126.1.10.1",
      "source_ref_d": "fad6ca01-a002-46ab-8e5c-ea6fe195a5de",
      "euin": null
    }
    

    JSON Response:

    {
      "object": "mf_redemption",
      "id": "mfr_15f8d86bae614801bab5accaed131abc",
      "old_id": 6597,
      "mf_investment_account": "mfia_189111b00566431db0dace5332db519c",
      "folio_number": "15075102",
      "state": "pending",
      "amount": 10000.0,
      "scheme": "INF173K01FQ0",
      "redemption_mode": "normal",
      "traded_on": null,
      "failed_at": null,
      "plan": null,
      "euin": null,
      "distributor_id": null,
      "units": null,
      "redeemed_price": null,
      "redeemed_units": null,
      "redeemed_amount": null,
      "redemption_bank_account_number": null,
      "redemption_bank_account_ifsc_code": null,
      "scheduled_on": "2020-04-07",
      "created_at": "2020-04-07T14:50:23+05:30",
      "succeeded_at": null,
      "submitted_at": null,
      "reversed_at": null,
      "gateway": "rta",
      "initiated_by": "investor",
      "initiated_via": "web",
      "source_ref_id": "fad6ca01-a002-46ab-8e5c-ea6fe195a5de",
      "user_ip": "10.0.128.12",
      "server_ip": "126.1.10.1"
    }
    

    Request Parameters

    Name Mandatory Type Comments
    mf_investment_account yes string Provide the V2 id of the investment account against which this order must be placed.
    scheme yes string Provide the isin of the scheme for which this order must be placed
    folio_number yes string Provide the folio number mapped with the investment account against which order must be placed.
    amount no integer Provide redemption amount in Rupees.

    The amount should be between min_withdrawal_amount and max_withdrawal_amount and should be a multiple of withdrawal_multiples

    If the redemption amount and units are both empty, the entire holding amount would be redeemed upon successful processing of the order.

    Note : You can use Get holdings Report API to check the maximum redeemable amount for a given folio and a scheme.

    units no decimal Provide the number of units that you want to redeem

    The units should be between min_withdrawal_units and max_withdrawal_units and should be a multiple of withdrawal_multiples_units

    If the redemption amount and units are both empty, the entire holding amount would be redeemed upon successful processing of the order.

    Note : You can use Get holdings Report API to check the maximum redeemable units for a given folio and a scheme.

    user_ip no string Provide IP address of the end-user.
    server_ip no string Provide IP address of the server through which the request to create this order is made.
    source_ref_id no string An identifier that is unique across orders of all types(purchases, redemptions, and switch). This is not generated by FP and is populated by API consumers for identification purposes. (ideally an auto generated identifier / uuid to identify the order in your application).
    euin no string Provide EUIN associated with the distributor through which the order is being placed.

    Update a MF Redemption

    PATCH /v2/mf_redemptions

    curl -X PATCH "https://s.finprim.com/v2/mf_redemptions"
      -H "Authorization: Bearer ACCESS_TOKEN"
    

    JSON Request:

    {
      "id": "mfr_15f8d86bae614801bab5accaed131abc",
      "state": "confirmed"
    }
    

    JSON Response:

    {
      "object": "mf_redemption",
      "id": "mfr_15f8d86bae614801bab5accaed131abc",
      "old_id": 6597,
      "mf_investment_account": "mfia_189111b00566431db0dace5332db519c",
      "folio_number": "15075102",
      "state": "confirmed",
      "amount": 10000.0,
      "scheme": "INF173K01FQ0",
      "redemption_mode": "normal",
      "traded_on": null,
      "failed_at": null,
      "plan": null,
      "euin": null,
      "distributor_id": null,
      "units": null,
      "redeemed_price": null,
      "redeemed_units": null,
      "redeemed_amount": null,
      "redemption_bank_account_number": null,
      "redemption_bank_account_ifsc_code": null,
      "scheduled_on": "2020-04-07",
      "created_at": "2020-04-07T14:50:23+05:30",
      "succeeded_at": null,
      "submitted_at": null,
      "reversed_at": null,
      "gateway": "rta",
      "initiated_by": "investor",
      "initiated_via": "web",
      "source_ref_id": "fad6ca01-a002-46ab-8e5c-ea6fe195a5de",
      "user_ip": "10.0.128.12",
      "server_ip": "126.1.10.1"
    }
    

    Request Parameters

    Name Mandatory Type Comments
    id yes string V2 Id of the redemption order
    state yes string New state of the redemption order. Supported values: confirmed

    Fetch a MF Redemption

    GET /v2/mf_redemptions/:id

    curl -X GET "https://s.finprim.com/v2/mf_redemptions/mfr_15f8d86bae614801bab5accaed131abc"
      -H "Authorization: Bearer ACCESS_TOKEN"
    

    This API is used to fetch a given redemption order by its V2 identifier

    Query Parameters

    Name Mandatory Type Comments
    id yes string V2 id of the redemption order.

    JSON Response:

    {
      "object": "mf_redemption",
      "id": "mfr_15f8d86bae614801bab5accaed131abc",
      "old_id": 6597,
      "mf_investment_account": "mfia_189111b00566431db0dace5332db519c",
      "folio_number": "15075102",
      "state": "pending",
      "amount": 10000.0,
      "scheme": "INF173K01FQ0",
      "redemption_mode": "normal",
      "traded_on": null,
      "failed_at": null,
      "plan": null,
      "euin": null,
      "distributor_id": null,
      "units": null,
      "redeemed_price": null,
      "redeemed_units": null,
      "redeemed_amount": null,
      "redemption_bank_account_number": null,
      "redemption_bank_account_ifsc_code": null,
      "scheduled_on": "2020-04-07",
      "created_at": "2020-04-07T14:50:23+05:30",
      "succeeded_at": null,
      "submitted_at": null,
      "reversed_at": null,
      "gateway": "rta",
      "initiated_by": "investor",
      "initiated_via": "web",
      "source_ref_id": "fad6ca01-a002-46ab-8e5c-ea6fe195a5de",
      "user_ip": "10.0.128.12",
      "server_ip": "126.1.10.1"
    }
    

    List all MF Redemptions

    GET /v2/mf_redemptions

    curl -X GET "https://s.finprim.com/v2/mf_redemptions"
      -H "Authorization: Bearer ACCESS_TOKEN"
    

    This API is used to fetch all mf_redemption orders.

    JSON Response:

    {
      "object": "list",
      "data": [
        {
          "object": "mf_redemption",
          "id": "mfr_15f8d86bae614801bab5accaed131abc",
          "old_id": 6597,
          "mf_investment_account": "mfia_189111b00566431db0dace5332db519c",
          "folio_number": "15075102",
          "state": "pending",
          "amount": 10000.0,
          "scheme": "INF173K01FQ0",
          "redemption_mode": "normal",
          "traded_on": null,
          "failed_at": null,
          "plan": null,
          "euin": null,
          "distributor_id": null,
          "units": null,
          "redeemed_price": null,
          "redeemed_units": null,
          "redeemed_amount": null,
          "redemption_bank_account_number": null,
          "redemption_bank_account_ifsc_code": null,
          "scheduled_on": "2020-04-07",
          "created_at": "2020-04-07T14:50:23+05:30",
          "succeeded_at": null,
          "submitted_at": null,
          "reversed_at": null,
          "gateway": "rta",
          "initiated_by": "investor",
          "initiated_via": "web",
          "source_ref_id": "fad6ca01-a002-46ab-8e5c-ea6fe195a5de",
          "user_ip": "10.0.128.12",
          "server_ip": "126.1.10.1"
        },
        {
          "object": "mf_redemption",
          "id": "mfr_21f8a86bae614101bab5accaed121abf",
          "old_id": 6597,
          "mf_investment_account": "mfia_189111b00566431db0dace5332db519c",
          "folio_number": "15075102",
          "state": "pending",
          "amount": 10000.0,
          "scheme": "INF213K04FQ0",
          "redemption_mode": "normal",
          "traded_on": null,
          "failed_at": null,
          "plan": null,
          "euin": null,
          "distributor_id": null,
          "units": null,
          "redeemed_price": null,
          "redeemed_units": null,
          "redeemed_amount": null,
          "redemption_bank_account_number": null,
          "redemption_bank_account_ifsc_code": null,
          "scheduled_on": "2020-04-07",
          "created_at": "2020-04-07T14:50:23+05:30",
          "succeeded_at": null,
          "submitted_at": null,
          "reversed_at": null,
          "gateway": "rta",
          "initiated_by": "investor",
          "initiated_via": "web",
          "source_ref_id": "aad6ca01-a002-46ar-8e1c-ea6fe191a5de",
          "user_ip": "10.1.128.11",
          "server_ip": "122.1.9.1"
        }
      ]
    }
    

    Query Parameters

    Name Mandatory Type Comments
    mf_investment_account no string The investment account against which the redemptions are made.
    mf_redemption_plan no string Provide a redemption plan id to fetch redemption orders that belong to a particular plan..

    Note:

    The response can contain 100 latest orders at max.

    MF Settlement Details

    New V2 APIs allow you to handle payments by yourself should you wish to do so. In such cases, you can create an order and mark the order as confirmed using the Update purchase order API. If you are handling payments by yourself, it is your responsiblity to ensure that the money collected by the investors are transffered to the respective AMCs. For every purchase order received by an AMC, payment reconciliation is done. To facilitiate this activity, we share the required reports with AMCs for the payments that we manage. If you are managing payments by yourself, you can provide us the settlement details of the transfer that you have made and we will manage the rest. A settlement object represents a payment settlement made to an AMC.

    Note: At present, the facility to handle payments by yourself is available for lump sum purchases only.

    Endpoints:

    POST /v2/mf_settlement_details
    GET /v2/mf_settlement_details/:id
    GET /v2/mf_settlement_details

    MF Settlement Detail Object

    {
      "object": "mf_settlement_detail",
      "id": "mfsd_2d88b75041fe4dcdbac30f765336da3f",
      "mf_purchase": "mfp_116a41de7cb243ca8f5eda15c3d8300aa",
      "utr_no": "889121212",
      "amc_code": "MFA",
      "amc_name": "Mutul Fund AMC PVT. LTD.",
      "scheme_code": "GOZG",
      "investor_name": "Rani Gupta",
      "account_number": "18603051137433",
      "amount": 10000.0,
      "payment_mode": "NETBANKING",
      "beneficiary_account_number": "1143005051340",
      "beneficiary_account_title": "AMC Mutual Fund Pool AC",
      "settlement_processed_at": "2020-04-09T12:00:09+05:30"
    }
    
    Attribute Type Comments
    object string Value is mf_settlement_detail. String representing the object type. Objects of the same type share the same value
    mf_purchase string The V2 identifier of the purchase order for which these settlement details have been provided
    utr_no string Unique transaction reference number that can be used to identify the payment that was made to the AMC's bank account against the order
    amc_code string Unique code that identifies the AMC
    amc_name string Name of the AMC(For easier comprehension)
    scheme_code string The scheme code helps you identify the scheme against which the purchase was made
    investor_name string Name of the investor who made the purchase
    account_number string Bank account number of the investor from which payment was made
    amount decimal The amount that has been transferred to AMC's bank account
    payment_mode string Mode of payment used by the investor to make the payment. Possible values: netbanking, nach, neft, rtgs
    beneficiary_account_number string AMC's bank account number to which the transfer was made
    beneficiary_account_title string AMC's bank account name
    settlement_processed_at string Time at which the settlement is processed

    Create a mf settlement detail

    POST /v2/mf_settlement_details

    curl -X POST "https://s.finprim.com/v2/mf_settlement_details"
      -H "Authorization: Bearer ACCESS_TOKEN"
    

    JSON Request:

    {
      "mf_purchase": "mfp_116a41de7cb243ca8f5eda15c3d8300aa",
      "payment_type": "netbanking",
      "utr_no": "889121212",
      "bank_account_no": "18603051137433",
      "beneficiary_account_no": "1143005051340",
      "beneficiary_account_title": "AMC Mutual Fund Pool AC",
      "settlement_processed_at": "2020-04-09T12:00:09"
    }
    

    JSON Response:

    {
      "object": "mf_settlement_detail",
      "id": "mfsd_2d88b75041fe4dcdbac30f765336da3f",
      "mf_purchase": "mfp_116a41de7cb243ca8f5eda15c3d8300aa",
      "utr_no": "889121212",
      "amc_code": "MFA",
      "amc_name": "Mutul Fund AMC PVT. LTD.",
      "scheme_code": "GOZG",
      "investor_name": "Rani Gupta",
      "account_number": "18603051137433",
      "amount": 10000.0,
      "payment_mode": "NETBANKING",
      "beneficiary_account_number": "1143005051340",
      "beneficiary_account_title": "AMC Mutual Fund Pool AC",
      "settlement_processed_at": "2020-04-09T12:00:09+05:30"
    }
    

    Request Parameters

    Name Mandatory Type Comments
    mf_purchase yes string Provide the V2 identifier of the purchase for which this settlement was made
    payment_type yes string Provide the payment mode using which the investor made the payment. Possible values: netbanking, nach, neft, rtgs
    utr_no yes string Provide the unique transaction reference of the transfer made to the AMC
    bank_account_no yes string Provide the account number of the investor's bank account from which the payment originated
    beneficiary_account_no yes string Provide the AMC's bank account number to which the transfer was made
    beneficiary_account_title yes string Provide the bank account name of the AMC's bank account to which the transfer was made
    settlement_processed_at yes string Provide the settlement timestamp in ISO Local Date Time yyyy-MM-ddThh:mm:ss format

    Fetch a mf settlement detail

    GET /v2/mf_settlement_details/:id

    curl -X GET "https://s.finprim.com/v2/mf_settlement_details/mfsd_2d88b75041fe4dcdbac30f765336da3f"
      -H "Authorization: Bearer ACCESS_TOKEN"
    

    This API is used to fetch a given settlement detail by its V2 identifier

    Query Parameters

    Name Mandatory Type Comments
    id yes string V2 id of the settlement detail.

    JSON Response:

    {
      "object": "mf_settlement_detail",
      "id": "mfsd_2d88b75041fe4dcdbac30f765336da3f",
      "mf_purchase": "mfp_116a41de7cb243ca8f5eda15c3d8300aa",
      "utr_no": "889121212",
      "amc_code": "MFA",
      "amc_name": "Mutul Fund AMC PVT. LTD.",
      "scheme_code": "GOZG",
      "investor_name": "Rani Gupta",
      "account_number": "18603051137433",
      "amount": 10000.0,
      "payment_mode": "NETBANKING",
      "beneficiary_account_number": "1143005051340",
      "beneficiary_account_title": "AMC Mutual Fund Pool AC",
      "settlement_processed_at": "2020-04-09T12:00:09+05:30"
    }
    

    List all mf settlement details

    GET /v2/mf_settlement_details

    curl -X GET "https://s.finprim.com/v2/mf_settlement_details"
      -H "Authorization: Bearer ACCESS_TOKEN"
    

    This API can be used to fetch a settlement detail for a given purchase order.

    Query Parameters

    Name Mandatory Type Comments
    mf_purchase yes string V2 id of the purchase order.

    JSON Response:

    {
      "object": "mf_settlement_detail",
      "id": "mfsd_2d88b75041fe4dcdbac30f765336da3f",
      "mf_purchase": "mfp_116a41de7cb243ca8f5eda15c3d8300aa",
      "utr_no": "889121212",
      "amc_code": "MFA",
      "amc_name": "Mutul Fund AMC PVT. LTD.",
      "scheme_code": "GOZG",
      "investor_name": "Rani Gupta",
      "account_number": "18603051137433",
      "amount": 10000.0,
      "payment_mode": "NETBANKING",
      "beneficiary_account_number": "1143005051340",
      "beneficiary_account_title": "AMC Mutual Fund Pool AC",
      "settlement_processed_at": "2020-04-09T12:00:09+05:30"
    }