Skip to content

Accreditation Verification

All requests require clientID and developerAPIKey parameters for authentication.

Base URL: https://api-sandboxdash.norcapsecurities.com

Endpoints


POST /v3/getAiDocument

This method is used to retrieve a list of all accreditation documents associated with a specific account.

Parameters

Parameter Type Required Description
accountId string Yes Account ID that is generated by the API once an account is created (createAccount)
documentId string No Document Id generated by the 'uploadVerificationDocument' method

Example Request

curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/getAiDocument
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d accountId=A74413
-d documentId=SDrKb

Response

Field Type Description
document\_details array Array of verification document details associated with the account. Each object includes a documentUrl — a time-limited admin download link generated per request
letter\_details array Array of AI letter details associated with the account. Each object includes a time-limited documentUrl download link

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "document_details": [
    {
      "id": "123",
      "accountId": "A74413",
      "documentid": "gHnhS",
      "documentTitle": " Testing2",
      "documentFileName": "GKrQ180918120031.pdf",
      "documentFileReferenceCode": "180918120031",
      "createdDate": "2018-09-18",
      "documentUrl": "https://api-sandboxdash.norcapsecurities.com/admin_v3/Upload_documentation/uploadDocument/EncRypt3dT0k3n..."
    }
  ],
  "letter_details": [
    {
      "id": "456",
      "accountId": "A74413",
      "documentFileName": "aiVerifyDocumentA74413.pdf",
      "createdDate": "2018-09-20",
      "documentUrl": "https://api-sandboxdash.norcapsecurities.com/admin_v3/Upload_documentation/uploadDocument/EncRypt3dT0k3n..."
    }
  ]
}

POST /v3/getAiLetter

This method is used to retrieve the letter verifying Accredited Investor (requestAiVerification) status for a specific account.

Parameters

Parameter Type Required Description
accountId string Yes Account ID that is generated by the API once an account is created (createAccount)

Example Request

curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/getAiLetter
-d clientID=someclientid
-d developerAPIKey=somedeveloperkey
-d accountId=A77654

Response

Field Type Description
document\_details array Array containing the most recent AI letter for the account. documentUrl is a time-limited admin download link generated per request

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "document_details": [
    {
      "accountId": "A45510",
      "documentFileName": "aiVerifyDocumentA45510.pdf",
      "createdDate": "2018-09-20",
      "documentUrl": "https://api-sandboxdash.norcapsecurities.com/admin_v3/Upload_documentation/uploadDocument/EncRypt3dT0k3n..."
    }
  ]
}

POST /v3/getAiRequest

This method is used to retrieve the status of an accreditation verification request (requestAiVerification) for a specific account.

Parameters

Parameter Type Required Description
accountId string Yes Account ID that is generated by the API once an account is created (createAccount)

Example Request

curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/getAiRequest
-d clientID=someclientid
-d developerAPIKey=somedeveloperkey
-d accountId=A52991

Response

Field Type Description
accreditedDetails object Object containing a request array of accreditation request details. When verification documents exist for the account, it also contains a documents array; each document includes a time-limited documentUrl download link. The clientId and developerAPIKey fields in request are always masked

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "accreditedDetails": {
    "request": [
      {
        "airequestId": "vvNlBU",
        "accountId": "A11685",
        "aiMethod": "Upload",
        "allow": "Pending",
        "aiDate": "0000-00-00",
        "reviewedBy": "Testing",
        "notes": "Test",
        "aiRequestStatus": "Need More Info",
        "createdDate": "2018-09-18",
        "accountName": "John Smith",
        "accreditedStatus": "Pending",
        "clientId": "XXXXXXXXXXXXXXX",
        "developerAPIKey": "XXXXXXXXXXXXXXX"
      }
    ],
    "documents": [
      {
        "id": "123",
        "documentid": "gHnhS",
        "documentTitle": "Testing2",
        "documentFileName": "GKrQ180918120031.pdf",
        "documentFileReferenceCode": "180918120031",
        "status": "ACTIVE",
        "documentUrl": "https://api-sandboxdash.norcapsecurities.com/admin_v3/Upload_documentation/uploadDocument/EncRypt3dT0k3n..."
      }
    ]
  }
}

POST /v3/requestAiVerification

This is used to send a request to verify the accredited status of an Account (createAccount).*** This Method has fees associated with it that will be charged for each use. The cost to use this method is $35 per request. Fees will only be charged in the live environment. ***

Parameters

Parameter Type Required Description
accountId string Yes Account ID that is generated by the API once an account is created (createAccount)
aiMethod string Yes Accreditation method. Use Upload. The value is stored as sent and is not validated against a fixed list
notes string No Notes for request

Example Request

curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/requestAiVerification
-d clientID=someclientid
-d developerAPIKey=somedeveloperkey
-d accountId=A12345
-d aiMethod=Upload
-d notes=Test

Response

Field Type Description
accreditedDetails array Array of account accredited details

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "accreditedDetails": [
    {
      "accountId": "A85479",
      "aiRequestStatus": "Pending",
      "airequestId": "6v7pDd",
      "notes": "Test",
      "accreditedStatus": "Self Accredited"
    }
  ]
}

POST /v3/updateAiRequest

This method is used to update the status of the submitted Accredited Investor verification request. This is normally used to indicate when new information has been uploaded by the investor and is ready for re-review in an existing review (New Info Added), or if an updated letter is being requested after a review was previously completed (Updated Letter Requested).

Two status values also change the account's accredited status: Approved sets the account's accreditedStatus to Verified Accredited, and rejected (case-insensitive) sets it to Not Accredited. Any other non-empty value is stored as sent — the API does not validate aiRequestStatus against a fixed list.

Parameters

Parameter Type Required Description
airequestId string Yes Request ID generated by the requestAiVerification method
aiRequestStatus string Yes New request status, stored as sent (no fixed list is enforced). Typical values: Updated Letter Requested, New Info Added. Approved and rejected also update the account's accreditedStatus (see above)

Example Request

curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/updateAiRequest
-d clientID=someclientid
-d developerAPIKey=somedeveloperkey
-d airequestId=lu16rk
-d aiRequestStatus=Approved

Response

Field Type Description
accreditedDetails array Array of account accredited details

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "accreditedDetails": [
    {
      "accountId": "A44683",
      "aiRequestStatus": "Approved",
      "airequestId": "lu16rK",
      "accreditedStatus": "Verified Accredited"
    }
  ]
}

POST /v3/uploadVerificationDocument

This method is used to upload documentation to verify Accredited Investor status to a specific account. NCPS requires one of the three following options for accreditation verification: 1) W2's, 1099's or tax returns for the past two years to show your individual income exceeds $200,000 (or joint income exceeds $300,000) for each year. 2) Provide recent account statements or third party appraisals that show the value of your assets exceed $1,000,000 excluding your primary residence. (Must be dated within the last 3 months) 3) Provide an official written communication from any of the following stating that the professional service provider has a reasonable belief that you are an Accredited Investor (Must be dated within the last 3 months): A licensed CPA, Attorney, Investment Advisor, or Registered broker-dealer. PDF, JPG, JPEG, PNG, and TXT files are supported.

This is a multipart/form-data request. The file is sent in the userfile form field.

Parameters

Parameter Type Required Description
accountId string Yes Account ID that is generated by the API when an account is created (createAccount)
documentTitle string Yes Uploaded document title, stored verbatim. Send the plain title — do not add a documentTitle0= prefix. (Unlike the multi-file upload*Document endpoints, this endpoint takes a single file and stores whatever you send, so a prefix would become part of the title.)
userfile file Yes Raw file data. Specification of raw file data is application specific. Accepted file extensions are PDF, JPG, JPEG, PNG, and TXT (case-insensitive). Minimum file size is 1 kB. Please refer to the Sample Requests section for reference implementations.
createdIpAddress string No Requested IP Address

Example Request

curl --location --request POST 'https://api-sandboxdash.norcapsecurities.com/v3/uploadVerificationDocument' \
--form 'clientID=someclientid' \
--form 'developerAPIKey=somedeveloperAPIkey' \
--form 'accountId=someaccountid' \
--form 'documentTitle=Accreditation Verification Document' \
--form 'userfile=@"/path/to/file"' \
--form 'createdIpAddress="127.0.0.1"'
import axios from 'axios';
import FormData from 'form-data';

const apiHost = process.env.TAPI_HOST || 'https://api-sandboxdash.norcapsecurities.com';
const tapi = axios.create({
  baseURL: `${apiHost}/tapiv3/index.php/v3`,
  timeout: 60000,
});
const auth = {
  clientID: process.env.TAPI_CLIENT_ID,
  developerAPIKey: process.env.TAPI_API_KEY,
};

// `file` is a multer-style object: { buffer, originalname }
const uploadVerificationDocument = (accountId, documentTitle, file) => {
  const data = new FormData();
  data.append('clientID', auth.clientID);
  data.append('developerAPIKey', auth.developerAPIKey);
  data.append('accountId', accountId);
  // Single file: send the plain title. No `documentTitle0=` prefix — it is stored verbatim.
  data.append('documentTitle', documentTitle);
  data.append('userfile', file.buffer, { filename: file.originalname });
  return tapi.post('/uploadVerificationDocument', data, { headers: data.getHeaders() });
};

Response

Field Type Description
document_details string Confirmation message: Document has been uploaded Successfully
Error(s) string (optional) Provides more information about an error response

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "document_details": "Document has been uploaded Successfully"
}