Custodial Accounts
All requests require clientID and developerAPIKey parameters for authentication.
Base URL: https://api-sandboxdash.norcapsecurities.com
Endpoints
POST /v3/createCustodyAccountRequest
This method is used to request a custodial account. This is the first step to opening a custodial account through North Capital Private Securities. The Custody Agreement Attestation (createCustodyAgreementAttestation) must be affirmatively recorded before the request can be made.
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/createCustodyAccountRequest
-d clientID=someclientid
-d developerAPIKey=somedeveloperkey
-d accountId=A12345
Response
| Field | Type | Description |
custodialAccountDetails | string | An array of custodial account includes all information of the custodial account |
| Field | Type | Description |
accountId | string | Account ID generated by the API with createAccount |
custAccStatus | string | Request status: Pending, Approved, Rejected, More Info Added |
accountStatus | string | Status of the custody account: Pending, Open, Closed |
custAccRequestID | string | Custodial Account Request Id |
createdDate | string | Date and timestamp of the request |
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"custodialAccountDetails": [
{
"accountId": "A98780788",
"custAccStatus": "Pending",
"accountStatus": "Pending",
"custAccRequestID": "yNHHDX2",
"createdDate": "2024-11-22 16:22:10",
"approvalStatus": "Pending"
}
]
}
POST /v3/createCustodyAccountSupplement
This method is used to request a custodial account. This is the first step to opening a custodial account through North Capital Private Securities. This is specifically for IRA accounts.
Parameters
| Parameter | Type | Required | Description |
accountId | string | Yes | Account ID that is generated by the API once an account is created (createAccount) |
appointmentOfInvestmentManager | string | No | 1 - I/We wish to appoint an investment manager. Complete Part 1A 2 - No appointment at this time |
proxyVotingPreferences | string | No | 1 - Receive all proxy materials 2 - Send all proxy marterials to an investment manager 3 - Do not send proxy material |
otherServices | string | No | Please provide the details of the other services required. |
methodOfContributionOrFunding | string | No | 1 - Transfer Direct movement of assets from an IRA into this IRA 2 - Regular Contribution Includes catch-up contributions. 3 - Roth Conversion A taxable movement from a Traditional or Simple IRA into this Roth IRA. By selecting this transaction, you irrevocably designate this contribution as a conversion. 4 - Rollover Distribution from an IRA or eligible employersponsored retirement plan that is being deposited into this IRA. By selecting this transaction, you irrevocably designate this contribution as a rollover. 5 - SEP Contribution Contribution made under a SEP plan. SEP contributions are reported for the year in which the contribution is made |
methodOfContributionTaxYear | string | No | If "methodOfContributionOrFunding is option 2 - this is required to complete "Contribution for Tax Year 'YYYY'. |
internationalAccountNumber | string | No | If the account is an international account, please include the account number here. |
bankFirmName1 | string | No | Name of the bank/firm where the assets are currently held. |
bankCountry1 | string | No | Country of the bank/firm where the assets are currently held. |
bankAccountNumber1 | string | No | Account number of the account where the assets are currently held. |
bankFirmName2 | string | No | Name of the bank/firm where the assets are currently held. |
bankCountry2 | string | No | Country of the bank/firm where the assets are currently held. |
bankAccountName2 | string | No | Name on the account where the assets are currently held. |
bankAccountNumber2 | string | No | Account number of the account where the assets are currently held. |
maritalStatus | conditional | No | 1 - Not married. 2 - Married If you designate a primary benefiicary other than or in addition to your spouse, spousal consent may be required. |
mailingAddressLine1 | string | Yes | Mailing Address Line 1 |
mailingAddressLine2 | string | No | Mailing Address Line 2 |
mailingCity | string | Yes | Mailing Address City |
mailingState | string | Yes | Mailing Address State |
mailingZipCode | string | Yes | Mailing Address Zip Code |
mailingCountry | string | Yes | Mailing Address Country |
Example Request
curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/createCustodyAccountSupplement
-d clientID=someclientid
-d developerAPIKey=someclientid
-d accountId=someaccountid
-d proxyVotingPreferences=proxyVotingPreferences
-d otherServices=otherServices
-d methodOfContributionOrFunding=type
-d methodOfContributionTaxYear=some year
-d internationalAccountNumber=internationalAccountNumber
-d bankFirmName1=bankFirmName1
-d bankCountry1=bankCountry1
-d bankAccountName1=bankAccountName1
-d bankAccount Number1=bankAccount Number1
-d bankFirmName2=bankFirmName
-d bankCountry2=bankCountry
-d bankAccountName2=bankAccountName
-d bankAccountNumber2=bankAccountNumber
-d maritalStatus=1
-d mailingAddressLine1=Mailing Address Line 1
-d mailingAddressLine2=Mailing Address Line 2
-d mailingCity=Mailing Address City
-d mailingState=Mailing Address State
-d mailingZipCode=Mailing Address Zip Code
-d mailingCountry=Mailing Address Country
Response
| Field | Type | Description |
accountDetails | string | An array of custodial account includes all information of the custodial account |
| Field | Type | Description |
accountId | string | Account ID that is generated by the API once an account is created (createAccount) |
appointmentOfInvestmentManager | string | 1 or 2 |
proxyVotingPreferences | string | 1, 2, or 3 |
otherServices | string | Details of the other services required. |
methodOfContributionOrFunding | string | 1, 2, 3, 4, or 5, |
methodOfContributionTaxYear | string | YYYY |
internationalAccountNumber | string | International account number |
bankFirmName1 | string | Name of the bank/firm where the assets are currently held. |
bankCountry1 | string | Country of the bank/firm where the assets are currently held. |
bankAccountName1 | string | Account name of the account where the assets are currently held. |
bankAccountNumber1 | string | Account number of the account where the assets are currently held. |
bankFirmName2 | string | Country of the bank/firm where the assets are currently held. |
bankCountry2 | string | Country of the bank/firm where the assets are currently held. |
bankAccountName2 | string | Name of the bank/firm where the assets are currently held. |
bankAccountNumber2 | string | Account number of the account where the assets are currently held. |
maritalStatus | conditional | 1 - Not married. 2 - Married |
mailingAddressLine1 | string | Mailing address |
mailingAddressLine2 | string | Mailing address |
mailingCity | string | Mailing city |
mailingState | string | Mailing state |
mailingZipCode | string | Mailing zip code |
mailingCountry | string | Mailing country |
Example Response
{
"statusCode": "101",
"statusDesc": "Account added successfully.",
"accountDetails": {
"accountId": "A3091454",
"appointmentOfInvestmentManager": "2",
"proxyVotingPreferences": "2",
"otherServices": "",
"methodOfContributionOrFunding": "4",
"methodOfContributionTaxYear": "",
"internationalAccountNumber": "",
"bankFirmName1": "Bank of America",
"bankCountry1": "US",
"bankAccountName1": "",
"bankAccountNumber1": "123456789",
"bankFirmName2": "",
"bankCountry2": "",
"bankAccountName2": "",
"bankAccountNumber2": "",
"maritalStatus": "1",
"mailingAddressLine1": "",
"mailingAddressLine2": "",
"mailingCity": "",
"mailingState": "",
"mailingZipCode": "",
"mailingCountry": ""
}
}
POST /v3/createCustodyAgreementAttestation
This method is used to record when a party attests to North Capital account terms and conditions.
Parameters
| Parameter | Type | Required | Description |
accountId | string | Yes | Account ID that is generated by the API once an account is created (createAccount). |
isAttested | boolean | Yes | true (accepted) |
documentUrl | string | Yes | URL for attestation document |
Example Request
curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/createCustodyAgreementAttestation
-d clientID=someclientid
-d developerAPIKey=somedeveloperkey
-d accountId=A2624258
-d isAttested=true
-d documentUrl=https://example.com
Response
| Field | Type | Description |
attestation | string | attestation details |
| Field | Type | Description |
accountId | string | Account ID that has attested |
isAttested | boolean | 1 = true, the party has attested |
documentUrl | string | URL for attestation |
createdDate | string | Date and timestamp of the attestation |
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"attestation": {
"accountId": "A98780730",
"isAttested": "1",
"documentUrl": "https://example.com",
"createdDate": "2024-11-26 17:05:16"
}
}
POST /v3/createCustodyFundDisbursement
Parameters
| Parameter | Type | Required | Description |
accountId | string | Yes | Account ID generated from createAccount |
amount | string | Yes | Amount of funds to be transferred |
type | string | Yes | Type options: ACH, wire_domestic, wire_international |
bankId | string | No | Required for wire transfers only. See details below. |
bankAccountId | string | No | Required for wire transfers only. See details below. |
additionalDetails | string | No | Open text field to provide any additional instructions that are required to successfully send the wire transfer |
Example Request
curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/createCustodyFundDisbursement
-d clientID=someclientid
-d developerAPIKey=somedeveloperkey
-d accoundId=someaccountid
-d amount=22.23
-d type=wire_domestic
-d bankId=122100024
-d bankAccountId=123456789
Response
| Field | Type | Description |
custodyFundDisbursement | object | See below |
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"custodyFundDisbursement": {
"requestId": "a49a68b7-f0ab-45b5-ac07-6ed555259d27",
"accountId": "A3110006",
"amount": "1.20",
"type": "wire_domestic",
"bankId": "122100024",
"bankAccountId": "123456789",
"additionalDetails": "",
"status": "pending",
"createdDate": "2024-12-10 23:29:13",
"updatedDate": "2024-12-10 23:29:13"
}
}
POST /v3/createCustodyFundMove
Parameters
| Parameter | Type | Required | Description |
accountId | string | Yes | Account ID that is generated by the API once an account is created (createAccount) |
amount | string | Yes | The amount to be debited from the external account. The amount is limited based on client risk assessment and is capped at $100,000.00 |
description | string | No | Description of the fund move |
Example Request
curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/createCustodyFundMove
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d accountId=985742
-d amount=10000.50
-d description=Example Transaction
-d createdIpAddress=10.0.0.9
Response
| Field | Type | Description |
custodyTransaction | string | Returns the fund move details as an array |
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"custodyTransaction": {
"accountId": "A3110006",
"bankName": null,
"amount": "7.000000",
"accountNumber": "",
"routingNumber": "011001726",
"accountName": "",
"referenceNumber": "339846456",
"description": "",
"approvalStatus": "approved",
"status": "Pending",
"routingNumberStatus": "Verified",
"errors": "",
"createdDate": "2024-12-10 22:49:06",
"updatedDate": "2024-12-10 22:49:06"
}
}
POST /v3/createCustodyPartySupplement
This method is used to add additional fields that may be required in order to open a custodial account through North Capital Private Securities.
Parameters
| Parameter | Type | Required | Description |
partyId | string | Yes | Party ID that is generated by the API once an party is created (createParty) |
relationship | string | No | The party's relationship to the account owner. Put "owner" if this is the account owner. |
salutation | conditional | No | 1 - Mr. 2 - Mrs. 3 - Ms. 4 - Dr. |
countryOfCitizenship | string | No | Party's country of citizenship. |
authorizedSigner | conditional | No | Is this party the authorized signer for the account? 1 - Yes 2 - No |
controlPerson | conditional | No | Is this party a control person for the account? 1 - Yes 2 - No |
politicallyExposedPerson | conditional | No | Is this person considered a politically exposed person? 1 - Yes 2 - No |
politicallyExposedPersonDetails | string | No | If the person selects "Yes" that they are a politically exposed person, then this field is required. Please provide the details of the politically exposed person. |
beneficiaryType | conditional | No | If this party is a beneficiary for the account, please provide if they are a 1 - Spouse 2 - Non-Spouse 3 - Trust/Entity beneficiary type |
beneficiaryPercentage | integer | No | If this party is a beneficiary for the account, please provide the percentage. |
mailingAddressLine1 | string | No | Mailing Address Line 1 |
mailingAddressLine2 | string | No | Mailing Address Line 2 |
mailingCity | string | No | Mailing Address City |
mailingState | string | No | Mailing Address State |
mailingZipCode | string | No | Mailing Address Zip Code |
mailingCountry | string | No | Mailing Address Country |
publicCompany | string | No | Is this party associated with a public company? 1 - Yes 2 - No |
companyTicker | string | No | Company Ticker if public company association is "1 - Yes" |
associatedFirm | string | No | If the party is associated with a broker dealer, please indicate the name of the Associated Firm |
Example Request
curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/createCustodyPartySupplement
-d clientID=someclientid
-d developerAPIKey=somedeveloperKey
-d partyId=somepartyid
-d relationship=owner
-d salutation=Mr
-d countryOfCitizenship=citizenship
-d authorizedSigner=yes
-d controlPerson=yes
-d politicallyExposedPerson=yes
-d politicallyExposedPersonDetails=some details
-d beneficiaryType=Spouse
-d beneficiaryPercentage=some details
-d mailingAddressLine1=address1
-d mailingAddressLine2=address2
-d mailingCity=city
-d mailingState=state
-d mailingZipCode=54321
-d mailingCountry=US
-d publicCompany=yes
-d mailingCountry=test
-d associatedFirm=test
Response
| Field | Type | Description |
partyDetails | string | An array of party details |
| Field | Type | Description |
partyId | string | Party ID that is generated by the API once an party is created (createParty) |
relationship | string | OWNER |
salutation | conditional | MR, MRS, MS, or DR |
countryOfCitizenship | string | Party's country of citizenship. |
authorizedSigner | conditional | YES or NO |
controlPerson | conditional | YES or NO |
politicallyExposedPerson | conditional | YES or NO |
politicallyExposedPersonDetails | string | Details of the politically exposed person |
beneficiaryType | conditional | SPOUSE, NON-SPOUSE, or TRUST/ENTITY |
beneficiaryPercentage | integer | Percentage 1-100 |
mailingAddressLine1 | string | Mailing Address Line |
mailingAddressLine2 | string | Mailing Address Line |
mailingCity | string | Mailing Address City |
mailingState | string | Mailing Address State |
mailingZipCode | string | Mailing Address Zip |
mailingCountry | string | Mailing Address Country |
Example Response
{
"statusCode": "101",
"statusDesc": "Party added successfully.",
"party details": {
"partyId": "P2726935",
"relationship": "some relationship",
"salutation": "some salutation",
"countryOfCitizenship": "usa",
"authorizedSigner": "",
"controlPerson": "",
"politicallyExposedPerson": "No",
"politicallyExposedPersonDetails": "",
"beneficiaryType": "some beneficiary",
"beneficiaryPercentage": "100%",
"mailingAddressLine1": "123 Testing Way",
"mailingAddressLine2": "",
"mailingCity": "Orem",
"mailingState": "UT",
"mailingZipCode": "84097",
"mailingCountry": "usa"
}
}
GET /v3/custody/accounts/{id}/positions
Fetch the positions for a given custody account
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"positions": [
{
"id": "02587DM96",
"date": "2019-03-20",
"units": "27"
},
{
"id": "40434YGR2",
"date": "2019-03-21",
"units": "1"
},
{
"id": "38148JA92",
"date": "2019-03-22",
"units": "1"
},
{
"id": "DELL12",
"date": "2019-03-20",
"units": "10"
}
]
}
GET /v3/custody/accounts/{id}/transactions
Fetch a list of transactions associated with the specified custody account.
GET /v3/custody/accounts
This endpoint retrieves a list of custody accounts. It supports pagination, filtering, and sorting capabilities.
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"custody_accounts": [
{
"accountId": "A00000003",
"requestId": "1BIBe0V",
"status": "Approved",
"relationship": null,
"restrictedStatus": "No",
"restrictedReason": null,
"principalReviewBy": "",
"approvalDate": "2025-02-12 17:11:18",
"notes": "",
"createdDate": "2025-02-12 17:11:17",
"updatedDate": "2025-02-12 17:11:18"
}
],
"pagination": {
"totalRecords": 1001,
"startIndex": 0,
"endIndex": 0
}
}
POST /v3/custody/accounts/{id}
This endpoint retrieves a single custody account.
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"custody_account": {
"accountId": "A00000003",
"requestId": "1BIBe0V",
"status": "Approved",
"relationship": null,
"restrictedStatus": "No",
"restrictedReason": null,
"principalReviewBy": "",
"approvalDate": "2025-02-12 17:11:18",
"notes": "",
"createdDate": "2025-02-12 17:11:17",
"updatedDate": "2025-02-12 17:11:18"
}
}
GET /v3/custody/positions
Fetch the positions for all securities held by issuer accounts
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"positions": [
{
"id": "02587DM96",
"date": "2019-03-20",
"units": "27"
},
{
"id": "40434YGR2",
"date": "2019-03-21",
"units": "1"
},
{
"id": "38148JA92",
"date": "2019-03-22",
"units": "1"
},
{
"id": "DELL12",
"date": "2019-03-20",
"units": "10"
}
]
}
GET /v3/custody/distributions
This endpoint retrieves a list of custody distributions. It supports pagination, filtering, and sorting capabilities.
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"custody_distributions": [
{
"id": "uuid",
"submissionId": "uuid",
"brokerageAccountId": "string",
"amountCents": "integer",
"status": "string",
"accountId": "string",
"bankId": "string",
"bankAccountId": "string",
"transactionType": "string",
"transactionMemo": "string",
"createdAt": "datetime",
"updatedAt": "datetime"
}
]
"pagination": {
"totalRecords": 100,
"startIndex": 0,
"endIndex": 0
}
}
POST /v3/getCustodyAccountRequest
This method is used to get the status of a custodial account request.
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/getCustodyAccountRequest
-d clientID=someclientid
-d developerAPIKey=somedeveloperkey
-d accountId=A12716
Response
| Field | Type | Description |
custodialAccountDetails | string | An array of custodial account includes all information of the custodial account |
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"custodialAccountDetails": [
{
"accountId": "A3177046",
"custAccStatus": "Pending",
"accountStatus": "Pending",
"custAccRequestID": "ROE6ovs",
"restrictedStatus": "No",
"reasonForStatus": null,
"createdDate": "2025-01-03 21:07:24",
"approvalStatus": "Approved"
}
]
}
POST /v3/getCustodialDocuments
This method is used to get the statements and tax forms for a North Capital Private Securities custodial 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/getCustodialDocuments
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d accountId=accountId
Response
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"accountDetails": [
{
"Document Type": "PDF",
"Month": "4",
"Year": "2023",
"StatementURL": "url"
}
]
}
POST /v3/getCustodyBalances
This method is used to get the Cash, Securities, and Total account values of a custody 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/getCustodyBalances
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d accountId=accountId
Response
| Field | Type | Description |
custodyBalances | object | Custody account balances and intents |
| Field | Type | Description |
accountID | string | Account the request is being made against |
fundMoveIntents | number | The total amount of intended deposits (fund movements into the account), in decimal dollars. Deposits that have been registered with the payment processor but have not been submitted to the bank for processing. |
disbursementIntents | number | The total amount of intended withdrawals (disbursements from the account), in decimal dollars. Withdrawals that have been registered with the payment processor but have not been processed nor initiated. |
cashAvailableBalance | number | The available cash balance of all settled transactions in the account, in decimal dollars. |
cashTotalBalance | number | The total cash balance in the account, including any pending transactions, in decimal dollars. |
securitiesPosition | number | The total value of securities held in the account, in decimal dollars. |
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"custodyBalances": [
{
"accountId": "A50648187",
"fundMoveIntents": 200000000,
"disbursementIntents": 1000,
"cashAvailableBalance": 261266.75,
"cashTotalBalance": 262290.2,
"securitiesPosition": 16810
}
]
}
POST /v3/getCustodyCashTransactions
This method is used to get the Cash, Securities, and Total account values of a custody account.
Parameters
| Parameter | Type | Required | Description |
accountId | string | Yes | Account ID that is generated by the API once an account is created (createAccount) |
offset | integer | Yes | The row index at which to begin the query. Zero represents the first transaction in the list. |
limit | integer | Yes | The maximum number of transactions to return. Max value is 500. |
Example Request
curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/getCustodyCashTransactions
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d accountId=accountId
Response
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"brokerageTransactions": [
{
"id": "CT000021436",
"date": "2024-10-03",
"name": "Chelsea Elting",
"notes": "TEST",
"status": "Settled",
"settledDate": "0000-00-00",
"createdDate": "2024-10-03 18:31:44",
"updatedDate": "0000-00-00 00:00:00",
"amount": "100.00"
},
{
"id": "CT000021437",
"date": "2024-10-03",
"name": "Chelsea Elting",
"notes": "TESTING",
"status": "Settled",
"settledDate": "0000-00-00",
"createdDate": "2024-10-03 18:35:57",
"updatedDate": "0000-00-00 00:00:00",
"amount": "-5.37"
}
],
"pagination": {
"totalRecords": 2,
"startIndex": 0,
"endIndex": 1
}
}
POST /v3/getCustodyFundMove
Get information about a custody fund move intent (deposit)
Parameters
| Parameter | Type | Required | Description |
referenceNumber | string | Yes | Reference Number that is generated by the API once fund move is completed (fundCustodyAccount) |
Example Request
curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/getCustodyFundMove
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d accountId=accountId
-d referenceNumber=somereferencenumber
Response
| Field | Type | Description |
| `` | String | API response code |
| `` | String | Human-readable status description |
| `` | Object | Transaction details object |
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"custodyTransaction": {
"accountId": "A3110006",
"bankName": null,
"amount": "7.000000",
"accountNumber": "",
"routingNumber": "011001726",
"accountName": "",
"referenceNumber": "339846456",
"description": "",
"approvalStatus": "approved",
"status": "Pending",
"routingNumberStatus": "Verified",
"errors": "",
"createdDate": "2024-12-10 22:49:06",
"updatedDate": "2024-12-10 22:49:06"
}
}
POST /v3/getCustodyFundMoves
Get the list of custody fund move intents for a given custody account
Parameters
| Parameter | Type | Required | Description |
accountId | string | No | 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/getCustodyFundMoves
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d accountId=accountId
Response
| Field | Type | Description |
| `` | String | API response code |
| `` | String | Human-readable status description |
| `` | Object | Transaction details object |
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"custodyTransactions": [
{
"accountId": "A3110006",
"bankName": null,
"amount": "7.000000",
"accountNumber": "",
"routingNumber": "011001726",
"accountName": "",
"referenceNumber": "339846456",
"description": "",
"approvalStatus": "approved",
"status": "Pending",
"routingNumberStatus": "Verified",
"errors": "",
"createdDate": "2024-12-10 22:49:06",
"updatedDate": "2024-12-10 22:49:06"
},
{
"accountId": "A3110006",
"bankName": null,
"amount": "0.000000",
"accountNumber": "",
"routingNumber": "011001726",
"accountName": "",
"referenceNumber": "417184939",
"description": "",
"approvalStatus": "approved",
"status": "Pending",
"routingNumberStatus": "Verified",
"errors": "",
"createdDate": "2024-12-03 21:56:24",
"updatedDate": "2024-12-03 21:56:24"
},
{
"accountId": "A3110006",
"bankName": null,
"amount": "0.000000",
"accountNumber": "",
"routingNumber": "011001726",
"accountName": "",
"referenceNumber": "916079744",
"description": "",
"approvalStatus": "approved",
"status": "Pending",
"routingNumberStatus": "Verified",
"errors": "",
"createdDate": "2024-12-03 21:47:21",
"updatedDate": "2024-12-03 21:47:21"
},
{
"accountId": "A3110006",
"bankName": null,
"amount": "100.000000",
"accountNumber": "MTExMTIyMjIzMzMzMDAwMA==",
"routingNumber": "MDExMDAxNzI2",
"accountName": "Chelsea Elting",
"referenceNumber": "879361244",
"description": "",
"approvalStatus": "approved",
"status": "SETTLED",
"routingNumberStatus": "Verified",
"errors": "",
"createdDate": "2024-11-26 17:06:53",
"updatedDate": "2024-12-03 21:09:38"
},
{
"accountId": "A3110006",
"bankName": null,
"amount": "51.250000",
"accountNumber": "MTExMTIyMjIzMzMzMDAwMA==",
"routingNumber": "MDExMDAxNzI2",
"accountName": "Chelsea Elting",
"referenceNumber": "520284442",
"description": "investment in ABC",
"approvalStatus": "approved",
"status": "Voided",
"routingNumberStatus": "Verified",
"errors": "",
"createdDate": "2024-10-18 19:13:16",
"updatedDate": "2024-11-04 23:21:17"
}
],
"pagination": {
"totalRecords": 5,
"startIndex": 0,
"endIndex": 4
}
}
POST /v3/getCustodyFundsDisbursement
This method is used to get the current Fund Move Status for Custody fund moves.
Parameters
| Parameter | Type | Required | Description |
filter | string | No | filter by parameters such as {"requestId":"",accountId":""} |
Example Request
curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/getCustodyFundsDisbursement
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
Response
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"custodyFundDisbursements": [
{
"requestId": "baca4059-e3af-43a4-a86b-4838c91be975",
"accountId": "A98780730",
"amount": "20.20",
"type": "wire_domestic",
"bankId": "122100024",
"bankAccountId": "12345688",
"additionalDetails": "",
"status": "pending",
"createdDate": "2024-11-26 20:51:40",
"updatedDate": "2024-11-26 20:52:43"
},
{
"requestId": "953cfa35-37c2-4360-b2ed-78db9fb8b331",
"accountId": "A98780730",
"amount": "20.20",
"type": "ach",
"bankId": "",
"bankAccountId": "",
"additionalDetails": "",
"status": "pending",
"createdDate": "2024-11-26 17:23:05",
"updatedDate": "2024-11-26 17:23:05"
},
{
"requestId": "002717a3-a612-4e94-b517-3f4dbd79b523",
"accountId": "A98780730",
"amount": "20.20",
"type": "ach",
"bankId": "",
"bankAccountId": "",
"additionalDetails": "test",
"status": "pending",
"createdDate": "2024-11-26 15:45:51",
"updatedDate": "2024-11-26 15:45:51"
}
],
"pagination": {
"totalRecords": 3,
"startIndex": 0,
"endIndex": 2
}
}
POST /v3/getFundCustodialAccountInfo
Parameters
| Parameter | Type | Required | Description |
RefNum | string | Yes | Reference Number that is generated by the API once an external fund move is initiated (externalFundMove ) |
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/getFundCustodialAccountInfo
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d RefNum=685427152
-d accountId=A12345
Response
| Field | Type | Description |
custodialACHAccountDetails | string | Returns the fund move details as an array |
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"custodialACHAccountDetails": {
"fundStatus": "Submitted",
}
GET /v3/custody/distributions
The Custody Distributions API allows you to create and manage fund distributions from brokerage accounts to external bank accounts. This endpoint supports both domestic (ACH) and international (wire) transfers.
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"distributions": [
{
"id": "uuid",
"submissionId": "uuid",
"brokerageAccountId": "string",
"amountCents": "integer",
"status": "string",
"accountId": "string",
"bankId": "string",
"bankAccountId": "string",
"transactionType": "string",
"transactionMemo": "string",
"createdAt": "datetime",
"updatedAt": "datetime"
}
]
}
POST /v3/requestCustodialAgreement
This method is used to send the North Capital Private Securities custodial account agreement to the primary party that is linked to the Account ID that is requesting the custodial account.
Parameters
| Parameter | Type | Required | Description |
offeringId | string | Yes | TransactAPI Offering ID that is generated by the API once an offering is created (createOffering) |
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/requestCustodialAccount
-d clientID=someclientid
-d developerAPIKey=somedeveloperkey
-d offeringId=someofferingid
-d accountId=A12345
Response
| Field | Type | Description |
orderDetails | string | orderDetails of the matched requestCustodialAgreement |
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"orderDetails": {
"Account ID": "A2624258",
"Request ID": "8"
}
}
POST /v3/updateCustodialAccountRequest
This method is used to update the status of an existing custody account request (requestCustodyAccount) when new information has been added. You must update the status to "New Info Added" in order to initiate a re-review of the account.
Parameters
| Parameter | Type | Required | Description |
custAccRequestID | string | Yes | Request ID Generated by the createCustodyAccountRequest method |
custAccRequestStatus | string | Yes | Custody Account status: Pending \ |
notes | string | No | Notes |
updatedIpAddress | string | No | IP Address associated with the updateCustodialAccountRequest method call |
Example Request
curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/updateCustodialAccountRequest
-d clientID=someclientid
-d developerAPIKey=somedeveloperkey
-d custAccRequestID=hut67yt
-d custAccRequestStatus=New Info Added
-d notes=Need Info
-d updatedIpAddress=10.0.0.1
Response
| Field | Type | Description |
custodialAccountDetails | string | An array of custodial account includes all information of the custodial account |
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"custodialAccountDetails": [
{
"accountId": "A43969",
"custAccRequestID": "ttsUaKo",
"custAccStatus": "Pending",
"createdDate": "2018-10-06 07:24:52",
"approvalStatus": "Pending"
}
]
}
POST /v3/updateCustodyFundMove
This method is used to update the pending ACH transaction to void. This can only be used on a transaction that is in a "Pending" status. "Pending" transactions are submitted for processing at 6:00 PM Eastern Time every business day.
Parameters
| Parameter | Type | Required | Description |
referenceNumber | string | Yes | Reference Number that is generated by the API once an fund custodial Account is initiated ( createCustodyFundMove ) |
status | string | Yes | Set value to "void" to update the pending ACH transaction. This can only be used on a transaction that is in a "Pending" status. "Pending" transactions are submitted for processing at 6:00 PM Eastern Time every business day. |
Example Request
curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/updateCustodyFundMove
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d referenceNumber=313889266
-d status=void
Response
| Field | Type | Description |
custodyTransaction | string | Custody transaction details |
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"custodyTransaction": {
"accountId": "A3110006",
"bankName": null,
"amount": "7.000000",
"accountNumber": "",
"routingNumber": "011001726",
"accountName": "",
"referenceNumber": "339846456",
"description": "",
"approvalStatus": "approved",
"status": "void",
"routingNumberStatus": "Verified",
"errors": "",
"createdDate": "2024-12-10 22:49:06",
"updatedDate": "2024-12-10 23:20:06"
}
}
POST /v3/updateCustodyPartySupplement
This method is used to update the additional fields that may be required in order to open a custodial account through North Capital Private Securities.
Parameters
| Parameter | Type | Required | Description |
partyId | string | Yes | Party ID that is generated by the API once an party is created (createParty) |
relationship | string | No | The party's relationship to the account owner. Put "owner" if this is the account owner. |
salutation | conditional | No | 1 - Mr. 2 - Mrs. 3 - Ms. 4 - Dr. |
countryOfCitizenship | string | No | Party's country of citizenship. |
authorizedSigner | conditional | No | Is this party the authorized signer for the account? 1 - Yes 2 - No |
controlPerson | conditional | No | Is this party a control person for the account? 1 - Yes 2 - No |
politicallyExposedPerson | conditional | No | Is this person considered a politically exposed person? 1 - Yes 2 - No |
politicallyExposedPersonDetails | string | No | If the person selects "Yes" that they are a politically exposed person, then this field is required. Please provide the details of the politically exposed person. |
beneficiaryType | conditional | No | If this party is a beneficiary for the account, please provide if they are a 1 - Spouse 2 - Non-Spouse 3 - Trust/Entity beneficiary type |
beneficiaryPercentage | integer | No | If this party is a beneficiary for the account, please provide the percentage. |
mailingAddressLine1 | string | No | Mailing Address Line 1 |
mailingAddressLine2 | string | No | Mailing Address Line 2 |
mailingCity | string | No | Mailing Address City |
mailingState | string | No | Mailing Address State |
mailingZipCode | string | No | Mailing Address Zip Code |
mailingCountry | string | No | Mailing Address Country |
publicCompany | string | No | Is this party associated with a public company? 1 - Yes 2 - No |
companyTicker | string | No | Company Ticker if public company association is "1 - Yes" |
associatedFirm | string | No | If the party is associated with a broker dealer, please indicate the name of the Associated Firm |
Example Request
curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/updateCustodyPartySupplement
-d clientID=someclientid
-d developerAPIKey=somedeveloperKey
-d partyId=somepartyid
-d relationship=owner
-d salutation=Mr
-d countryOfCitizenship=citizenship
-d authorizedSigner=yes
-d controlPerson=yes
-d politicallyExposedPerson=yes
-d politicallyExposedPersonDetails=some details
-d beneficiaryType=Spouse
-d beneficiaryPercentage=some details
-d mailingAddressLine1=address1
-d mailingAddressLine2=address2
-d mailingCity=city
-d mailingState=state
-d mailingZipCode=54321
-d mailingCountry=US
-d publicCompany=yes
-d mailingCountry=test
-d associatedFirm=test
Response
| Field | Type | Description |
partyDetails | string | An array of party details |
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"partyDetails": [
{
"partyId": "P43256"
}
]
}