Skip to content

Documents

All requests require clientID and developerAPIKey parameters for authentication.

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

Endpoints


POST /v3/addDocumentsforOffering

This method is used to add a document to an offering. Only .pdf, .xls, and .docx files can be uploaded. Only PDF files are able to be watermarked. 50 MB max file upload.

Parameters

Parameter Type Required Description
offeringId integer Yes Offering ID that is generated by the API once an offering is created (createOffering)
documentTitle string Yes Title/label for the uploaded document
documentFileReferenceCode string Yes Reference code for the uploaded document (can be any number to use for tracking)
file\_name string Yes File name of the uploaded document. No special characters can be included in the file name.
userfile0 string Yes While uploading the PDF files, please provide a temporary file name. Prefix @ on the file name. Eg : @/tmp/phpAHi2ZC Request parameter should be userfile0, userfile1, userfile2,...userfilen for multiple documents upload. Refer Sample Request set below
templateName conditional No Offering Document Template Name (can be used if using certain templates for tracking)
approval string No Has the Document been approved by a Registered Principal? Yes or No
supervisorname string No Name of the Approving Principal
date integer No Date that the Document was Approved
createdIpAddress string No IP Address of the addDocumentsforOffering method call

Example Request

# SINGLE UPLOAD
curl --location 'https://api-sandboxdash.norcapsecurities.com/v3/addDocumentsforOffering' \
--form 'clientID="ClientID"' \
--form 'developerAPIKey="DeveloperAPIKey"' \
--form 'offeringId="1338707"' \
--form 'documentTitle="documentTitle0=LaurenTest"' \
--form 'documentFileReferenceCode="220323024315"' \
--form 'file_name="filename0=Test.pdf"' \
--form 'userfile0=@"/Users/laurencoalmer/Documents/Test.pdf"' \
--form 'approval="yes"' \
--form 'supervisorname="Lauren"' \
--form 'date="02-04-2016"' \
--form 'createdIpAddress="10.0.0.9"'

# MULTIPLE UPLOAD — index each file: userfile0/userfile1,
# and join titles/names with & (documentTitle0=..&documentTitle1=..)
curl --location 'https://api-sandboxdash.norcapsecurities.com/v3/addDocumentsforOffering' \
--form 'clientID="someclientid"' \
--form 'developerAPIKey="somedeveloperkey"' \
--form 'offeringId="55593"' \
--form 'documentTitle="documentTitle0=Tagme&documentTitle1=Tested"' \
--form 'documentFileReferenceCode="220323024315"' \
--form 'file_name="filename0=page2.pdf&filename1=page3.pdf"' \
--form 'userfile0=@"/tmp/page2.pdf"' \
--form 'userfile1=@"/tmp/page3.pdf"' \
--form 'approval="yes"' \
--form 'supervisorname="peter"' \
--form 'date="02-04-2016"' \
--form 'createdIpAddress="10.0.0.9"'
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,
};

// `files` is an array of multer-style objects: { buffer, originalname }
// The indexed fields (userfile0, documentTitle0=, filename0=) must line up by index.
const addDocumentsforOffering = (offeringId, documentFileReferenceCode, files) => {
  const data = new FormData();
  data.append('clientID', auth.clientID);
  data.append('developerAPIKey', auth.developerAPIKey);
  data.append('offeringId', offeringId);
  data.append('documentFileReferenceCode', documentFileReferenceCode);
  data.append('documentTitle', files.map((f, i) => `documentTitle${i}=${f.originalname}`).join('&'));
  data.append('file_name', files.map((f, i) => `filename${i}=${f.originalname}`).join('&'));
  files.forEach((f, i) => data.append(`userfile${i}`, f.buffer, { filename: f.originalname }));
  return tapi.post('/addDocumentsforOffering', data, { headers: data.getHeaders() });
};

Response

Field Type Description
offeringId string Offering ID generated by the API
documentId string Document ID generated by the API
documentReferenceCode string Reference code supplied for the uploaded document
documentURL string Uploaded document URL

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "document_details": [
    {
      "offeringId": "7671",
      "documentId": "21344",
      "documentReferenceCode": "24102016121212",
      "documentURL": "https://api-sandboxdash.norcapsecurities.com/tapiv3/index.php/stamp/PDF/VGVzdA==/GKrQ241016060807.pdf"
    },
    {
      "offeringId": "7671",
      "documentId": "52348",
      "documentReferenceCode": "24102016121212",
      "documentURL": "https://api-sandboxdash.norcapsecurities.com/tapiv3/index.php/stamp/PDF/VGVzdA==/GKrQ2410160608071.pdf"
    }
  ]
}

POST /v3/addSubscriptionsforOffering

This method is used to add Subscription Documents to the offering through DocuSign. A template can be set up in DocuSign, allowing investor data to be auto-populated when the documents are sent. The Offering ID is required to add a Template Document. This method will return the Template ID as a successful response. To obtain the templateId needed for the templatename param, fetchSubscriptionDocuments can be used. A DocuSign business account connected to TransactAPI is required to use this method.

Parameters

Parameter Type Required Description
offeringId string Yes Offering ID that is generated by the API once an offering is created(createOffering) for the offering that the subscription document template is to be added
file\_name string Yes Template ID and Template Name (see example)

Example Request

curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/addSubscriptionsforOffering
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d file_name=templatename0= YourTemplateID--YourDocuSignTemplateName
-d offeringId=55593

Response

Field Type Description
document_details array Returns the template details as an array

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "document_details": [
    {
      "templateNameID": "55591",
      "templateName": "ABC Company",
      "offeringId": "55591"
    }
  ]
}

POST /v3/deleteDocumentsforOffering

This method is used to delete a document from an offering (addDocumentsforOffering).

Parameters

Parameter Type Required Description
documentId integer Yes Document ID that is generated by the API when an offering document is added (addDocumentsforOffering) of the document that is to be deleted

Example Request

curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/deleteDocumentsforOffering
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d documentId=55591

Response

Field Type Description
document_details string Success Message

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "document_details": "document deleted successfully"
}

POST /v3/deleteSubscriptionsforOffering

This method is used to delete a Subscription Document from the offering. The templateId is required as a request parameter to delete.

Parameters

Parameter Type Required Description
templateId string Yes Template ID that is generated by the API once a subscription document is added (addSubscriptionsforOffering) of the document to be deleted

Example Request

curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/deleteSubscriptionsforOffering
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d templateId=55591

Response

Field Type Description
document_details string Success Message

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "document_details": "Template deleted successfully"
}

POST /v3/deleteAccountDocument

Delete account documents.

Parameters

Parameter Type Required Description
accountId string Yes Account ID that is generated by the API when an account is created (createAccount)
documentId string Yes Document ID of the account document to be deleted

Example Request

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

Response

Field Type Description
document\_details string document deleted successfully

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "document_details": "document deleted successfully"
}

POST /v3/fetchSubscriptionDocuments

This method retrieves all subscription document templates available in the client's connected DocuSign account. It is a passthrough to the DocuSign eSignature GET /templates endpoint, so each item is a DocuSign envelope template object. Use the returned templateId and name to build the file_name value (templateId--templateName) required by addSubscriptionsforOffering. A DocuSign business account connected to TransactAPI is required to use this method.

Parameters

This method takes only the standard authentication parameters (clientID and developerAPIKey).

Example Request

curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/fetchSubscriptionDocuments
 -d clientID=someclientid
 -d developerAPIKey=somedeveloperapikey

Response Fields

The document_details array is the unaltered envelopeTemplates list returned by DocuSign. The fields below are the ones most commonly present and used by TransactAPI; DocuSign may include additional template attributes.

Field Type Description
statusCode string 101 on success
statusDesc string Ok on success
document_details array Array of DocuSign envelope template objects
document_details[].templateId string DocuSign template identifier (combine with name as templateId--name for addSubscriptionsforOffering)
document_details[].name string Template name as titled in DocuSign
document_details[].shared string Whether the template is shared within the DocuSign account (true / false)
document_details[].description string Template description (may be empty)
document_details[].created string Template creation timestamp (ISO 8601)
document_details[].lastModified string Last modification timestamp (ISO 8601)
document_details[].pageCount string Number of pages in the template
document_details[].uri string Relative DocuSign API URI for the template
document_details[].folderName string DocuSign folder containing the template
document_details[].owner object DocuSign user who owns the template (userName, email, userId)

If no DocuSign templates exist, document_details is an empty array.

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "document_details": [
    {
      "templateId": "08a1f630-f3cc-4d66-84ff-e87c3f95f685",
      "name": "Advisory Test",
      "shared": "true",
      "description": "",
      "created": "2019-02-19T12:28:16.0000000Z",
      "lastModified": "2019-02-19T12:28:16.0000000Z",
      "pageCount": "3",
      "uri": "/templates/08a1f630-f3cc-4d66-84ff-e87c3f95f685",
      "folderName": "Templates",
      "owner": {
        "userName": "North Capital",
        "email": "do-not-reply@norcapsecurities.com",
        "userId": "5e6f7a8b-1c2d-3e4f-5a6b-7c8d9e0f1a2b"
      }
    }
  ]
}

POST /v3/getAllSignedDocument

Get all signed document details

Parameters

Parameter Type Required Description
tradeId string Yes Trade ID that is generated by the API

Example Request

curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/getAllSignedDocument
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d tradeId=232242322

Response

Field Type Description
SignedDocumentDetails array Array of signed document details. Each item contains id, documentId, esignstatus, templateName, signcreatedDate, signupdatedDate, createdDate, developerAPIKey, offeringId, accountId, partyId, orderId, orderStatus, totalShares, totalAmount, transactionType

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "SignedDocumentDetails": [
    {
      "id": "798817",
      "documentId": "271baf64-70e4-42e2-8310-ddf556d2fc76",
      "esignstatus": "SIGNED",
      "templateName": " 08a1f630-f3cc-4d66-84ff-e87c3f95f685--Advisory Test",
      "signcreatedDate": "2019-02-19 12:28:16",
      "signupdatedDate": "2019-02-19 12:30:02",
      "createdDate": "2019-02-19 12:28:16",
      "developerAPIKey": "somedeveloperkey",
      "offeringId": "35034",
      "accountId": "A21451",
      "partyId": "P11462",
      "orderId": "896835457",
      "orderStatus": "CREATED",
      "totalShares": "10.000000",
      "totalAmount": "1000.000000",
      "transactionType": "WIRE"
    }
  ]
}

POST /v3/getDocumentsforOffering

This method is used to retrieve the document URL path and document details for a particular offering document (addDocumentsforOffering).

Parameters

Parameter Type Required Description
offeringId integer Yes Offering ID that is generated by the API once an offering is created (createOffering)

Example Request

curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/getDocumentsforOffering
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d offeringId=55591

Response

Field Type Description
documentTitle string Title of the document
documentId string Document ID
templateName string Offering document template name
documentFileReferenceCode string Reference code supplied for the uploaded document
documentName string Stored file name of the document
createdDate string Date the document was added
url string Document URL after water marked

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "document_details": [
    {
      "documentTitle": "Offer Doc one",
      "documentId": "97891",
      "templateName": "Offering Documents",
      "documentFileReferenceCode": "080916113242",
      "documentName": "GKrQ090916063243.pdf",
      "createdDate": "2016-09-09 06:32:43",
      "url": "https://api-sandboxdash.norcapsecurities.com/tapiv3/index.php/stamp/PDF/VGVzdA==/GKrQ090916063243.pdf"
    },
    {
      "documentTitle": "Offer Doc two",
      "documentId": "34122",
      "templateName": "Offering Documents",
      "documentFileReferenceCode": "080916113242",
      "documentName": "GKrQ0909160632431.pdf",
      "createdDate": "2016-09-09 06:32:43",
      "url": "https://api-sandboxdash.norcapsecurities.com/tapiv3/index.php/stamp/PDF/VGVzdA==/GKrQ0909160632431.pdf"
    },
    {
      "documentTitle": "24oct2016_1",
      "documentId": "21344",
      "templateName": "Offering Documents",
      "documentFileReferenceCode": "24102016121212",
      "documentName": "GKrQ241016060807.pdf",
      "createdDate": "2016-10-24 06:08:07",
      "url": "https://api-sandboxdash.norcapsecurities.com/tapiv3/index.php/stamp/PDF/VGVzdA==/GKrQ241016060807.pdf"
    },
    {
      "documentTitle": "24oct2016_2",
      "documentId": "52348",
      "templateName": "Offering Documents",
      "documentFileReferenceCode": "24102016121212",
      "documentName": "GKrQ2410160608071.pdf",
      "createdDate": "2016-10-24 06:08:07",
      "url": "https://api-sandboxdash.norcapsecurities.com/tapiv3/index.php/stamp/PDF/VGVzdA==/GKrQ2410160608071.pdf"
    }
  ]
}

POST /v3/getSubscriptionsforOffering

This method is used to retrieve the subscription document template details for a particular offering.

Parameters

Parameter Type Required Description
offeringId string Yes Offering ID that is generated by the API once an offering is created(createOffering)

Example Request

curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/getSubscriptionsforOffering
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d offeringId=55591

Response

Field Type Description
document_details array Returns the template details as an array

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "document_details": [
    {
      "templateId": "55",
      "templateName": "ABC Copmpany",
      "templateKey": "XEXZP636F3A3A36",
      "offeringId": "55591",
      "templateUrl": "https://secure.echosign.com/document/cp/2AAABLblqZhBzGsYNJkrcVqF58XhP0Myj3z0BuEPP2xT34rsr05gCx2se4fEFrJLxxSKvz6HwSiUshzEGc*/document.pdf",
      "createdDate": "2016-02-06 09:11:45"
    }
  ]
}

POST /v3/getTradeDocument

getTradeDocument list

Parameters

Parameter Type Required Description
tradeId string Yes Trade ID that is generated by the API once a trade is created

Example Request

curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/getTradeDocument
-d clientID=someclientid
-d developerAPIKey=somedeveloperkey
-d tradeId=484654613

Response

Field Type Description
document\_details array Array of trade document details

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "document_details": [
    {
      "id": "796792",
      "tradeId": "1001354616",
      "virtualStatus": "ACTIVE",
      "documentid": "6YY3t",
      "documentTitle": " Test Document",
      "documentFileName": "3pmRSHDuk64876d232625cT.pdf",
      "documentFileReferenceCode": "120623070819",
      "createdDate": "2023-06-12",
      "archive_status": "0",
      "documentUrl": "https://api-sandboxdash.norcapsecurities.com/admin_v3/Upload_documentation/uploadDocument/dkFLVzF4MVZrUWphTjV3WitGMjZSQlBuWVRDTnA1WldKemhhaG9aYXhUVHRCUW5Ra0J6WnZCeTBUWEluczZwdm9NZURrclJTN0ZDaUpId0VuZCswamtqMmlqZDZkdS82dUZ2Z3d3OTdrZDVDTHhzRlRUZFh1OXM3Yno1MXZUQ2FyeXFyaGdLOHB5a3V6MWhJYk5pTDB3PT0="
    }
  ]
}

POST /v3/getTradeSignedDocument

Parameters

Parameter Type Required Description
tradeId string Yes Trade ID generated through createTrade

Example Request

curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/getTradeSignedDocument
-d clientID=someclientid
-d developerAPIKey=somedeveloperkey
-d tradeId=2520578

Response

Field Type Description
SignedDocumentDetails array Returns an array

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "SignedDocumentDetails": [
    {
      "tradeId": "839685336",
      "documentId": "0af32e0b-7ba0-46ab-b3d7-c970ca4e55c9",
      "templateName": " 7087b67a-287a-469d-84f8-92abe32514b4--Fields Testing Document",
      "esignstatus": "SIGNED",
      "documentUrl": "https://api-sandboxdash.norcapsecurities.com/admin_v3//Upload_documentation/uploadDocument/RXplUjhMaWZQdFdVa1RCRHh4STNJRFZ1a0p2WlRmanNFK1NiNXFySXY2eVpMdkxiTGJONGJvV1h6NS93SUJRNDVTYWhQbFA0eE5udCsxNk5LTURUa0VLSjcxdzZaKzA1cC9LN3ovcllFRkN6WGlXbDY4YkNzT1gzZnFnLzVOSHlUVTVveUI0OG1RRVJpb29SeG5TWCtITm5GMkUrZitNL2wyMzJ6NmJqK2NDNzdReVZkSFcvTy8wbXh6VTdVMFA1MmFudDlmNWZibWxFZWdabUpQcHRVTDZMdUdRallCVXdGazg1SGJwOWlvZU8wZGduNEFMMDYyZXlaUnM0MU5QNlkwQkk4c25lNXc5SU1CemhVVGtzSXdFZk52TFd3THYvS2tab2dCV0R2SjNicXVXSWNFZEoyMmswdmpnNVlFamQ="
    }
  ]
}

POST /v3/getuploadPartyDocument

This method will return the document URL path and document details for a particular party document.

Parameters

Parameter Type Required Description
partyId string Yes Party ID that is generated by the API once an individual party is created (createParty)

Example Request

curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/getuploadPartyDocument
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d partyId=P39944

Response

Field Type Description
partyDocumentDetails array Array of party document details

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "partyDocumentDetails": [
    {
      "id": "562",
      "partyid": "P08374",
      "documentid": "UAVdq",
      "documentTitle": " Party Doc Check",
      "documentFileName": "GKrQ190918113557.pdf",
      "documentFileReferenceCode": "190918113557",
      "createdDate": "2018-09-19",
      "documentUrl": "https://api-sandboxdash.norcapsecurities.com/admin_v3/Upload_documentation/uploadDocument/cjdPQ2FlUm1LY0dZNzBkc1Z0bGt0cGpLcUhiV3FOUXV6bjJraW1XaTlVdFllWXBOTmNMTktFUStpSWNtVm5Yb1lYdkllRVNMb0pOZnU5RXM5eFdaVGp2Zm5mVllyc3ZLelpsdCtnVC8vdFVuemdOR282Rjg4bTgxb1hCaTJzZE9kMGkyMEMrM3VPMW9ETnlmcm5Vc2pBPT0="
    },
    {
      "id": "563",
      "partyid": "P08374",
      "documentid": "YBHE3",
      "documentTitle": " New Doc Check",
      "documentFileName": "GKrQ190918113617.pdf",
      "documentFileReferenceCode": "190918113617",
      "createdDate": "2018-09-19",
      "documentUrl": "https://api-sandboxdash.norcapsecurities.com/admin_v3/Upload_documentation/uploadDocument/cjdPQ2FlUm1LY0dZNzBkc1Z0bGt0cGpLcUhiV3FOUXV6bjJraW1XaTlVc1E1YTRZakRrd3NhTGdpczlwSmVaQTRqQjVVcGZxOUFJTWRoa0hzR1d5SFcveG92bHB1cG14UHY4OVBjOHVVOEkveTR3Sm1OVTFmYnM2ZXZGWWlUdFEvL2h0L2lqayttOExDUzJpdTV1bThBPT0="
    }
  ]
}

POST /v3/requestUploadPartyDocument

This method is used to collect documents when North Capital is providing a manual review of KYC/AML. There is an additional reviewing fee that will be charged to use this method.

Parameters

Parameter Type Required Description
requestId string Yes Party Request ID Generated by API
investorId string Yes Party Id or Entity Id or Account Id Generated by API
documentTitle string Yes Uploaded document title. Legacy users can still use the prefix "documentTitle0=" but it is no longer required.
userfile0 string Yes While uploading the PDF files, please provide a temporary file name. Prefix @ on the file name. Eg : @/tmp/phpAHi2ZC Request parameter should be userfile0 for documents upload.Refer Sample Request set below
createdIpAddress string Yes Requested IP Address

Example Request

curl --location --request POST 'https://api-sandboxdash.norcapsecurities.com/v3/requestUploadPartyDocument' \
--form 'clientID=someclientid' \
--form 'developerAPIKey=somedeveloperAPIkey' \
--form 'investorId=someinvestorid' \
--form 'requestId=somerequestid' \
--form 'documentTitle=New Request Doc' \
--form 'userfile0=@"/path/to/file"' \
--form 'createdIpAddress="117.221.66.34"'
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 requestUploadPartyDocument = (investorId, requestId, file) => {
  const data = new FormData();
  data.append('clientID', auth.clientID);
  data.append('developerAPIKey', auth.developerAPIKey);
  data.append('investorId', investorId);
  data.append('requestId', requestId);
  // Single file: the `documentTitle0=` prefix is optional and may be omitted.
  // For multiple files it is required: documentTitle0=..&documentTitle1=..
  data.append('documentTitle', file.originalname);
  data.append('userfile0', file.buffer, { filename: file.originalname });
  data.append('createdIpAddress', '117.221.66.34');
  return tapi.post('/requestUploadPartyDocument', data, { headers: data.getHeaders() });
};

Response

Field Type Description
documentDetails string Document has been uploaded successfully

Example Response

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

POST /v3/resendSubscriptionDocuments

The Resend Subscription Documents endpoint handles the re-delivery of previously sent subscription documents to investors.

Parameters

Parameter Type Required Description
offeringId integer Yes Offering ID that is generated by the API when an offering is created (createOffering)
accountId string Yes Account ID that is generated by the API when an account is created (createAccount)
tradeId integer Yes Trade ID that is generated by the API when an account is created (createTrade)

Example Request

curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/resendSubscriptionDocuments
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d offeringId=273410
-d accountId=A12345
-d tradeId=1001347178

Response

Field Type Description
document\_details string On success, the fixed message Subscription Document Sent Successfully

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "document_details": "Subscription Document Sent Successfully"
}

POST /v3/sendNda

This method is used to send the subscription documents to sign.

Parameters

Parameter Type Required Description
offeringId string Yes Offering ID that is generated by the API
userId string Yes User ID of the investor user the NDA is sent to

Example Request

curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/sendNda
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d offeringId=273410
-d userId=12345

Response

Field Type Description
document\_details object Details of the sent NDA envelope (refNum, maasuserId, partyId, accountId, clientId, developerAPIKey, offeringId, documentId, esignstatus, templateName, createdDate, createdIpAddress)
Document_URL object DocuSign embedded-signing response for the envelope, including the signing URL

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "document_details": {
    "refNum": "896835457",
    "maasuserId": "12345",
    "partyId": "P11462",
    "accountId": "A21451",
    "clientId": "someclientid",
    "developerAPIKey": "somedeveloperkey",
    "offeringId": "273410",
    "documentId": "271baf64-70e4-42e2-8310-ddf556d2fc76",
    "esignstatus": "NOTSIGNED",
    "templateName": "08a1f630-f3cc-4d66-84ff-e87c3f95f685--Advisory Test",
    "createdDate": "2019-02-19 12:28:16",
    "createdIpAddress": "10.0.0.9"
  },
  "Document_URL": {
    "url": "https://na3.docusign.net/Signing/StartInSession.aspx?t=3b12c557-f7b4-4453-a1d1-b85487fsdfg3c"
  }
}

POST /v3/sendSubscriptionDocumentClient

Create a DocuSign envelope and provide a URL to a view where the envelope can be signed.

Parameters

Parameter Type Required Description
offeringId string Yes Offering ID that is generated by the API when an offering is created (createOffering)
accountId string Yes Account ID that is generated by the API once an account is created (createAccount)
tradeId string Yes Trade ID that is generated by the API when an trade is created (createTrade)

Example Request

curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/sendSubscriptionDocumentClient
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d offeringId=273410
-d accountId=A12345 
-d tradeId=123456789

Response

Field Type Description
document\_details string Send signed URL in document details array

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "document_details": {
    "url": "https://na3.docusign.net/Signing/StartInSession.aspx?t=3b12c557-f7b4-4453-a1d1-b85487fsdfg3c"
  }
}

POST /v3/updateDocumentforOffering

This method is used to update a document with a new document for an offering. The existing document will be replaced with the new document.

Parameters

Parameter Type Required Description
documentId integer Yes Document ID that is generated by the API when an offering document is added (addDocumentsforOffering) of the document that is to be updated.
documentTitle string Yes The new Title/label for the uploaded document
documentFileReferenceCode string Yes The new reference code for the uploaded document (can be any number to use for tracking)
file\_name string Yes The new file name of the uploaded document
updatedIpAddress string No IP Address of the updateDocumentforOffering method call

Example Request

curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/updateDocumentforOffering
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d documentId=55593
-d documentTitle=Tagme
-d documentFileReferenceCode=ReferenceCode
-d file_name=mypdf_new.pdf
-d updatedIpAddress=10.0.0.9

Response

Field Type Description
offeringId string Offering ID generated by the API
documentId string Document ID generated by the API
documentURL string Uploaded document URL
documentReferenceCode string The new reference code for the uploaded document
documentFileName string Stored file name of the document
documentTitle string The new title/label of the uploaded document

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "document_details": {
    "offeringId": "55591",
    "documentId": "62801",
    "documentURL": "https://api-sandboxdash.norcapsecurities.com/stamp/PDF/page27.pdf",
    "documentReferenceCode": "ReferenceCode",
    "documentFileName": "mypdf_new.pdf",
    "documentTitle": "Tagme"
  }
}

POST /v3/updateSubscriptionsforOffering

Deprecated. This method is deprecated and should not be used for new integrations.

This method is used to update a Subscription Document for the offering. The template is set up in either Docusign or Echosign, allowing investor data to be auto-populated when the documents are sent. The existing template will be replaced with the new template.

Parameters

Parameter Type Required Description
offeringId string Yes Offering ID that is generated by the API once an offering is created(createOffering) for the offering that the subscription document template is to be replaced.
templateId string Yes Template ID that is generated by the API once a subscription document is added(addSubscriptionsforOffering)
templatename string Yes The name of the replacement template as it is titled in Docusign or Echosign.
updatedIpAddress string No IP Address of the updateSubscriptionsforOffering method call.

Example Request

curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/updateSubscriptionsforOffering
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d offeringId=55682
-d templateId=55593
-d templatename=sample document
-d updatedIpAddress=10.0.0.9

Response

Field Type Description
templateNameID string Template ID generated by the API
templateName string Uploaded template name
offeringId string Offering ID generated by the API

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "document_details": [
    {
      "templateNameID": "62801",
      "templateName": "ABC Company",
      "offeringId": "55591"
    }
  ]
}

POST /v3/updateTradeDocArchivestatus

Update trade document archive status

Parameters

Parameter Type Required Description
tradeId string Yes Trade ID generated by the API
documentFileReferenceCode string Yes Document reference code generated by the API
archiveStatus string Yes Change Status value eg: "0" or "1"

Example Request

curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/updateTradeDocArchivestatus
-d clientID=someclientid
-d developerAPIKey=somedeveloperkey
-d tradeId=141103099
-d documentFileReferenceCode=141103099
-d archiveStatus=1 or 0

Response

Field Type Description
tradeDocumentDetails array Array of trade document details (tradeId, virtualStatus, documentid, documentTitle, documentFileName, documentFileReferenceCode, createdDate, archiveStatus)

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "tradeDocumentDetails": [
    {
      "tradeId": "923209860",
      "virtualStatus": "ACTIVE",
      "documentid": "3c3Gu",
      "documentTitle": " Test trade document",
      "documentFileName": "GKrQ100417045821.pdf",
      "documentFileReferenceCode": "100417045821",
      "createdDate": "2017-04-10 19:08:19",
      "archiveStatus": "0"
    }
  ]
}

POST /v3/uploadAccountDocument

This method uploads a document and associates it with an account (createAccount). The Account ID is required as a request parameter. The request must use the multipart/form-data content type. Accepted file types are PDF, JPG, JPEG, PNG, and TXT. Minimum file size is 1 kB.

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. Please use prefix "documentTitle0=" in the value of documentTitle field
file\_name string Yes Uploaded document file name. Please use prefix "filename0=" in the value of file_name field
userfile0 string Yes Raw file data. Specification of raw file data is application specific. Accepted file types are PDF, JPG, JPEG, PNG and TXT. 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/uploadAccountDocument' \
--form 'clientID=someclientid' \
--form 'developerAPIKey=somedeveloperAPIkey' \
--form 'accountId=someaccountid' \
--form 'documentTitle="documentTitle0=Testing Document Size12.pdf"' \
--form 'file_name="filename0=Testing Document Size12.pdf"' \
--form 'userfile0=@"/path/to/file"' \
--form 'createdIpAddress="42.106.177.219"'
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 }
// Indexed fields (userfile0, documentTitle0=, filename0=) must line up by index.
const uploadAccountDocument = (accountId, file) => {
  const data = new FormData();
  data.append('clientID', auth.clientID);
  data.append('developerAPIKey', auth.developerAPIKey);
  data.append('accountId', accountId);
  data.append('documentTitle', `documentTitle0=${file.originalname}`);
  data.append('file_name', `filename0=${file.originalname}`);
  data.append('userfile0', file.buffer, { filename: file.originalname });
  return tapi.post('/uploadAccountDocument', data, { headers: data.getHeaders() });
};

Response Fields

Field Type Description
statusCode string 101 on success
statusDesc string Ok on success
document_details string On success, the fixed message Document has been uploaded Successfully
Error(s) string (error responses only) Validation message describing why the upload was rejected, e.g. missing parameters, file under 1 kB, or unsupported file type

Example Response

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

POST /v3/uploadEntityDocument

This method is used to upload a document to a particular entity party (createEntity). The Party ID is required as a request parameter for this method. The request must use the multipart/form-data content type. Accepted file types are PDF, JPG, JPEG, and PNG. Minimum file size is 1 kB.

Parameters

Parameter Type Required Description
partyId string Yes Entity ID that is generated by the API when an entity is created (createEntity)
documentTitle string Yes Uploaded document title. Please use prefix "documentTitle0=" in the value of documentTitle field
file\_name string Yes Uploaded document file name. Please use prefix "filename0=" in the value of file_name field
userfile0 string Yes Raw file data. Specification of raw file data is application specific. Accepted file types are PDF, JPG, JPEG and PNG. 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/uploadEntityDocument' \
--form 'clientID=someclientid' \
--form 'developerAPIKey=somedeveloperAPIkey' \
--form 'partyId=someentityid' \
--form 'documentTitle="documentTitle0=Testing Document Size12.pdf"' \
--form 'file_name="filename0=Testing Document Size12.pdf"' \
--form 'userfile0=@"/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 }
// Indexed fields (userfile0, documentTitle0=, filename0=) must line up by index.
const uploadEntityDocument = (partyId, file) => {
  const data = new FormData();
  data.append('clientID', auth.clientID);
  data.append('developerAPIKey', auth.developerAPIKey);
  data.append('partyId', partyId);
  data.append('documentTitle', `documentTitle0=${file.originalname}`);
  data.append('file_name', `filename0=${file.originalname}`);
  data.append('userfile0', file.buffer, { filename: file.originalname });
  return tapi.post('/uploadEntityDocument', data, { headers: data.getHeaders() });
};

Response Fields

Field Type Description
statusCode string 101 on success
statusDesc string Ok on success
document_details string On success, the fixed message Document has been uploaded Successfully
Error(s) string (error responses only) Validation message describing why the upload was rejected, e.g. missing parameters, file under 1 kB, or unsupported file type

Example Response

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

POST /v3/uploadPartyDocument

This endpoint is used to upload a document and associate it with an individual party. A valid party must exist to use this endpoint, and parties can be created using the createParty endpoint. The request must use the multipart/form-data content type to ensure proper handling of file uploads. Accepted file types are PDF, JPG, JPEG, PNG, HEIC, and BMP. Minimum file size is 1 kB.

Parameters

Parameter Type Required Description
partyId string Yes Party ID that is generated by the API when a party is created (createParty)
documentTitle string Yes Uploaded document title. Please use prefix "documentTitle0=" in the value of documentTitle field
file\_name string Yes Uploaded document file name. Please use prefix "filename0=" in the value of file_name field
userfile0 string Yes Raw file data. Specification of raw file data is application specific. Accepted file types are PDF, JPG, JPEG, PNG, HEIC and BMP. 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/uploadPartyDocument' \
--form 'clientID=someclientid' \
--form 'developerAPIKey=somedeveloperAPIkey' \
--form 'partyId=somepartyid' \
--form 'documentTitle="documentTitle0=Testing Document Size12.pdf"' \
--form 'file_name="filename0=Testing Document Size12.pdf"' \
--form 'userfile0=@"/path/to/file"' \
--form 'createdIpAddress="42.106.177.219"'
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 }
// Indexed fields (userfile0, documentTitle0=, filename0=) must line up by index.
const uploadPartyDocument = (partyId, file) => {
  const data = new FormData();
  data.append('clientID', auth.clientID);
  data.append('developerAPIKey', auth.developerAPIKey);
  data.append('partyId', partyId);
  data.append('documentTitle', `documentTitle0=${file.originalname}`);
  data.append('file_name', `filename0=${file.originalname}`);
  data.append('userfile0', file.buffer, { filename: file.originalname });
  return tapi.post('/uploadPartyDocument', data, { headers: data.getHeaders() });
};

Response Fields

Field Type Description
statusCode string 101 on success
statusDesc string Ok on success
document_details string On success, the fixed message Document has been uploaded Successfully
Error(s) string (error responses only) Validation message describing why the upload was rejected, e.g. missing parameters, file under 1 kB, or unsupported file type

Example Response

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

POST /v3/uploadTradeDocument

This method is used to upload a document to a particular trade (createTrade). The Trade ID is required as a request parameter for this method. The request must use the multipart/form-data content type. Accepted file types are PDF, JPG, JPEG, and PNG. Minimum file size is 1 kB.

Parameters

Parameter Type Required Description
tradeId string Yes Trade ID that is generated by the API when a trade is created (createTrade)
documentTitle string Yes Uploaded document title. Please use prefix "documentTitle0=" in the value of documentTitle field
file\_name string Yes Uploaded document file name. Please use prefix "filename0=" in the value of file_name field
userfile0 string Yes Raw file data. Specification of raw file data is application specific. Accepted file types are PDF, JPG, JPEG and PNG. 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/uploadTradeDocument' \
--form 'clientID=someclientid' \
--form 'developerAPIKey=somedeveloperAPIkey' \
--form 'tradeId=sometradeid' \
--form 'documentTitle="documentTitle0=Testing Document Size12.pdf"' \
--form 'file_name="filename0=Testing Document Size12.pdf"' \
--form 'userfile0=@"/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 }
// Single file only: this endpoint rejects a `&` in file_name, so the
// indexed multi-file form (filename0=..&filename1=..) is not supported here.
const uploadTradeDocument = (tradeId, file) => {
  const data = new FormData();
  data.append('clientID', auth.clientID);
  data.append('developerAPIKey', auth.developerAPIKey);
  data.append('tradeId', tradeId);
  data.append('documentTitle', `documentTitle0=${file.originalname}`);
  data.append('file_name', `filename0=${file.originalname}`);
  data.append('userfile0', file.buffer, { filename: file.originalname });
  return tapi.post('/uploadTradeDocument', data, { headers: data.getHeaders() });
};

Response Fields

Field Type Description
statusCode string 101 on success
statusDesc string Ok on success
document_details string On success, the fixed message Document has been uploaded Successfully
Error(s) string (error responses only) Validation message describing why the upload was rejected, e.g. missing parameters, file under 1 kB, or unsupported file type

Example Response

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