ACH Transfers
All requests require clientID and developerAPIKey parameters for authentication.
Base URL: https://api-sandboxdash.norcapsecurities.com
Endpoints
POST /v3/createExternalAccount
Note: Use the linkExternalAccount endpoint unless you have a specific use case and authorization to use this one. This method is only to be used in conjunction with an independent Plaid integration.
This method is used to add information to an Account (createAccount) for an external bank account which an ACH transfer can be initiated from. Only one external account can be created for an account. External accounts can have funds debited from them (externalFundMove).
Parameters
| Parameter | Type | Required | Description |
types | string | Yes | External Bank Account Type: Account |
accountId | string | Yes | Account ID that is generated by the API when an Account is created (createAccount) |
ExtAccountfullname | string | Yes | Account Holder Full Name or Issuer Account Holder Full Name |
Extnickname | string | Yes | Nickname for the External Account (Special characters are not accepted in this field) |
ExtRoutingnumber | integer | Yes | External Bank Account - Routing Number |
ExtAccountnumber | integer | Yes | External Bank Account - Account Number |
ExtBankname | string | No | External Bank Account - Bank Name |
updatedIpAddress | string | Yes | IP Address associated with the createExternalAccount method call |
accountType | string | No | Account type Checking / Savings. By default Checking |
Example Request
curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/createExternalAccount
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d types=Account
-d accountId=A20168
-d ExtAccountfullname=John Abraham
-d Extnickname=John Nick
-d ExtBankname=Union Bank
-d ExtRoutingnumber=34543534
-d ExtAccountnumber=1234567890
-d updatedIpAddress=10.0.0.115
Response
| Field | Type | Description |
accountId | string | Account ID |
ExtAccountfullname | string | External account full name |
Extnickname | string | External account nickname |
ExtRoutingnumber | integer | External account bank routing number |
ExtAccountnumber | integer | External account bank account number |
types | string | Type Account/Issuer |
accountType | string | Account type: Checking / Savings. (Default - Checking) |
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"External Account Details": [
true,
[
{
"accountId": "A78129645",
"ExtAccountfullname": "Lauren Test",
"Extnickname": "Testing",
"ExtRoutingnumber": "MDUzMDAwMTk2",
"ExtAccountnumber": "MTAwMDAwMDA=",
"types": "Account",
"accountType": "Checking"
}
]
]
}
POST /v3/deleteExternalAccount
This method is used to delete a particular external bank account (createExternalAccount) that was created for an account (createAccount). The Account ID must be specified as a request parameter to delete the external account.
Parameters
| Parameter | Type | Required | Description |
types | string | Yes | Account |
accountId | string | Yes | Account ID or Issuer ID that is generated by the API when an Account is created (createAccount). |
Example Request
curl --request POST \
--url https://api-sandboxdash.norcapsecurities.com/v3/deleteExternalAccount \
--header 'content-type: application/json' \
--data '
{
"accountId": "A123456",
"types": "Account",
"clientID": "someClientID",
"developerAPIKey": "someDeveloperAPIKey"
}
'
Response
| Field | Type | Description |
accountId | string | Account ID |
Ext\_Status | string | External account status deleted or not |
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"Account External Account Details": [
true,
[
{
"accountId": "A123456",
"Ext_status": "Deleted"
}
]
]
}
POST /v3/externalFundMove
Parameters
| Parameter | Type | Required | Description |
accountId | string | Yes | Account ID or Issuer ID that is generated by the API once an account (createAccount) or Issuer (createIssuer) is created |
offeringId | integer | Yes | Offering ID that is generated by the API once an offering is created (createOffering) |
tradeId | integer | Yes | Trade ID that is generated by the API once a trade is created (createTrade). A trade must be created before externalFundMove can be performed. |
NickName | string | Yes | Nickname given to the external account. This must match the Extnickname value in createExternalAccount. If using linkExternalAccount, Extnickname value can be retrieved via getExternalAccount |
amount | decimal | Yes | The amount to be debited from the external account. The amount is limited to $100,000.00 |
description | string | Yes | Description of the fund move (Investment in [offering]) |
checkNumber | integer | Yes | Check number should be same as trade ID |
createdIpAddress | string | No | IP address associated with the externalFundMove method call |
Example Request
curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/externalFundMove
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d accountId=985742
-d offeringId=97421
-d tradeId=7766362363632
-d NickName=Tester Jones
-d amount=10000.50
-d checkNumber=7766362363632
-d description=Example Transaction
-d createdIpAddress=10.0.0.9
Response
| Field | Type | Description |
externalFundMove Details | string | Returns the fund move details as an array |
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"TradeFinancialDetails": [
{
"accountId": "A49501",
"tradeId": "257528259",
"offeringId": "81272",
"totalAmount": "1000.000000",
"RefNum": "464266069",
"fundStatus": "Pending"
}
]
}
POST /v3/getAchPendingId
Parameters
| Parameter | Type | Required | Description |
accountId | string | Yes | Account ID or Issuer ID that is generated by the API once an Account (createAccount) or Issuer (createIssuer) is created |
Response
| Field | Type | Description |
investorExternalAccountDetails | string | Returns the tristate trade details with pending status as an array |
POST /v3/getExternalAccount
Parameters
| Parameter | Type | Required | Description |
types | string | Yes | Account |
accountId | string | Yes | Account Id that is generated by the API when an Account is created (createAccount) |
Example Request
curl --request POST \
--url https://api-sandboxdash.norcapsecurities.com/v3/getExternalAccount \
--header 'content-type: application/json' \
--data '
{
"clientID": "someClientID",
"developerAPIKey": "someDeveloperAPIKey",
"accountId": "A12345",
"types": "Account"
}
'
Response
| Field | Type | Description |
accountId | string | Account ID generated by the API |
Example Response
{
"statusCode": "101",
"accountId": "A1543842",
"statusDesc": {
"AccountName": "Test Account Name",
"AccountNickName": "Plaid Saving - America First Credit Union",
"AccountRoutingNumber": "021531323",
"AccountNumber": "1111222233331111",
"accountType": "Savings",
"updatedDate": "0000-00-00 00:00:00",
"createdDate": "2022-10-26 23:10:39"
}
}
POST /v3/getExternalFundMove
This method is used to get the details and current status for an external fund move. The Account ID and Reference Number must be specified as a request parameter to get the external fund move details and current status.
Parameters
| Parameter | Type | Required | Description |
accountId | string | Yes | Account ID or Issuer ID that is generated by the API when an Account(createAccount) or Issuer(createIssuer) is created |
RefNum | integer | Yes | Reference Number that is generated by the API once an external fund move is initiated (externalFundMove) |
Example Request
curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/getExternalFundMove
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d accountId=A85742
-d RefNum=685427152
Response
| Field | Type | Description |
externalFundMove details | string | Returns the fund move details as an array |
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"investorExternalAccountDetails": [
{
"accountId": "A49501",
"tradeId": "529293396",
"offeringId": "81272",
"Bankname": "Testing",
"totalAmount": "1000.000000",
"Accountnumber": "MTIzNDU2Nzg5MDAwMA==",
"Routingnumber": "MTIxMDAwMzU4",
"RefNum": "367253829",
"Accountfullname": "John Smith",
"transactionstatus": "Approved",
"routingNumberStatus": "Verified",
"fundStatus": "Submitted",
"errors": null,
"createdDate": "2018-09-19 08:57:04"
}
]
}
POST /v3/getExternalFundMoveHistory
This method is used to retrieve all the external fund move details for all ACH transactions that have been processed for a particular Account (createAccount)
Parameters
| Parameter | Type | Required | Description |
accountId | string | Yes | Account ID or Issuer ID that is generated by the API when an Account(createAccount) or Issuer(createIssuer) is created. |
Example Request
curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/getExternalFundMoveHistory
-d clientID=someclientid
-d developerAPIKey=somedeveloperkey
-d accountId=A77952
Response
| Field | Type | Description |
acccountFundmoveDetails | string | Array of external fund move details for an account that includes all information for the fund moves created for the matched account |
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"accountDetails": [
{
"accountId": "A49501",
"tradeId": "880696248",
"offeringId": "81272",
"Bankname": "Testing",
"totalAmount": "1000.000000",
"Accountnumber": "MTIzNDU2Nzg5MDAwMA==",
"Routingnumber": "MTIzNDU2Nzg5",
"RefNum": null,
"Accountfullname": "Testing",
"transactionstatus": "Approved",
"routingNumberStatus": "Verified",
"fundStatus": "Verification Pending",
"errors": null,
"createdDate": "2018-06-16 05:49:10"
},
{
"accountId": "A49501",
"tradeId": "623303227",
"offeringId": "44238",
"Bankname": "Testing",
"totalAmount": "5.000000",
"Accountnumber": "MTIzNDU2Nzg5MDAwMA==",
"Routingnumber": "MTIzNDU2Nzg5",
"RefNum": null,
"Accountfullname": "Testing",
"transactionstatus": "Pending",
"routingNumberStatus": "Verified",
"fundStatus": "Pending",
"errors": null,
"createdDate": "2018-07-06 11:35:45"
},
{
"accountId": "A49501",
"tradeId": "385938050",
"offeringId": "44238",
"Bankname": "Testing",
"totalAmount": "1.000000",
"Accountnumber": "MTIzNDU2Nzg5MDAwMA==",
"Routingnumber": "MTIzNDU2Nzg5",
"RefNum": null,
"Accountfullname": "Testing",
"transactionstatus": "Pending",
"routingNumberStatus": "Verified",
"fundStatus": "Pending",
"errors": null,
"createdDate": "2018-07-06 11:59:16"
}
]
}
POST /v3/getExternalFundMoveInfo
This method is used to get all information for an external fund move. The Account ID (createAccount) and Reference Number (included in the externalFundMove response) must be specified as a request parameter to get all external fund move information.
Parameters
| Parameter | Type | Required | Description |
accountId | string | Yes | Account ID or Issuer ID that is generated by the API when an Account(createAccount) or Issuer(createIssuer) is created |
RefNum | string | Yes | Reference Number that is generated by the API once an external fund move is initiated (externalFundMove) |
Example Request
curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/getExternalFundMoveInfo
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d RefNum=685427152
-d accountId=A12345
Response
| Field | Type | Description |
investorExternalAccountDetails | string[] | Returns the external account details as an array |
ACHDetails | string[] | Returns the ACH details as an array |
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"investorExternalAccountDetails": {
"fundStatus": "Returned",
"error": "101 - Settled Trade"
},
"ACHDetails": {
"accountId": "A3040386",
"fundStatus": "Returned",
"tradeId": "1001577983",
"createdDate": "2024-07-31 17:18:59",
"accountName": "John Smith's Account",
"clientName": "example client",
"issueName": "example offering"
}
}
POST /v3/linkExternalAccount
* This Method has third party fees associated with it that will be charged for each use. The cost to use this method is $1.80 each time the method is invoked. (Only applies in live API environment. Does not apply in the Sandbox Environment) *** This method is used to add an external account using Plaid. Only one external account can be created for an account. STEP ONE: Invoke the "LinkExternalAccount" API method from a web form using cURL. Failures will see the response with corresponding error codes. STEP TWO: Successful calls will provide the response as below : { "statusCode": "101", "statusDesc": "Ok", "AccountDetails":" https://api-sandboxdash.norcapsecurities.com/apiscript/plaid-link.php?params=[param_value] " } . STEP THREE: Get the content of the response and run it. You should see the Login widget on the webpage. Example PHP snippet : $res = json_decode($result); print_r(file_get_contents($res->accountDetails));
Parameters
| Parameter | Type | Required | Description |
accountId | string | Yes | Account ID generated by the API |
Example Request
curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/linkExternalAccount
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d accountId=A12345
Response
| Field | Type | Description |
accountDetails | string | Response URL |
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"accountDetails": " https://api-sandboxdash.norcapsecurities.com/apiscript/plaid-link.php?params=[param_value] "
}
POST /v3/requestForVoidACH
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 |
RefNum | integer | Yes | Reference Number that is generated by the API once an external fund move is initiated (externalFundMove) |
Example Request
curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/requestForVoidACH
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d RefNum=313889266
Response
| Field | Type | Description |
investorExternalAccountDetails | string | Status Updated Successfully |
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"investorExternalAccountDetails": "Status Updated Successfully"
}
POST /v3/updateExternalAccount
This method is used to update fields related to a particular external account for an Account (createAccount). The Account ID must be specified as a request parameter to update the record.
Parameters
| Parameter | Type | Required | Description |
ExtAccountfullname | string | Yes | Account Holder Full Name or Issuer Account Holder Full Name |
Extnickname | string | Yes | Nickname for the external account |
types | string | Yes | Is this for an account or issuer account? |
accountId / issuerId | string | Yes | Account ID or Issuer ID that is generated by the API when an Account(createAccount) or Issuer(createIssuer) is created. |
ExtRoutingnumber | integer | Yes | External Bank Account - Routing Number |
ExtAccountnumber | integer | Yes | External Bank Account - Account Number |
updatedIpAddress | string | No | IP Address of the updateExternalAccount method call |
accountType | string | No | Account type Checking / Savings. By default Checking |
Example Request
curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/updateExternalAccount
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d types=Account
-d accountid=A12345
-d ExtAccountfullname=John Abraham
-d Extnickname=John Nick
-d ExtRoutingnumber=34543534
-d ExtAccountnumber=1234567890
-d accountType=Checking
-d updatedIpAddress=10.0.0.115
Response
| Field | Type | Description |
accountId / issuerId | string | Account ID or Issuer ID that is generated by the API when an Account(createAccount) or Issuer(createIssuer) is created. |
ExtAccountfullname | string | Account Holder Full Name or Issuer Account Holder Full Name |
Extnickname | string | Nickname for the External Account |
ExtRoutingNumber | integer | External Bank Account - Routing Number |
ExtAccountnumber | integer | External Bank Account - Account Number |
types | string | Is this for an Account or Issuer Account? |
accountType | string | Account type Checking / Savings. By default Checking |
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"accountDetails": [
true,
[
{
"accountId": "5705166",
"ExtAccountfullname": "John",
"Extnickname": "John account",
"ExtRoutingnumber": "34543534",
"ExtAccountnumber": "1234567890",
"accountType": "Checking",
"types": "Account"
}
]
]
}
POST /v3/updateLinkExternalAccount
* This Method has third party fees associated with it that will be charged for each use. The cost to use this method is $1.80 each time the method is invoked. (Only applies in live API environment. Does not apply in the Sandbox Environment) *** This method is used to update an external account using Plaid. Only one external account can be created for an account
Parameters
| Parameter | Type | Required | Description |
accountId | string | Yes | Account ID generated by the API |
Example Request
curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/updateLinkExternalAccount
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d accountId=A12345
Response
| Field | Type | Description |
accountDetails | string | Response URL |
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"accountDetails": "https://api-sandboxdash.norcapsecurities.com/apiscript/plaid-link.php?params=[param_value]"
}
POST /v3/validateABARoutingNumber
This method is used to validate the routing number for an external account (createExternalAccount)
Parameters
| Parameter | Type | Required | Description |
routingNumber | integer | Yes | The Bank ABA routing number to be validated |
Example Request
curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/validateABARoutingNumber
-d clientID=someclientid
-d developerAPIKey=somedeveloperkey
-d routingNumber=123456789
Response
| Field | Type | Description |
accountDetails | string | Routing number valid / invalid |
Example Response
{
"statusCode": "101",
"statusDesc": "Ok",
"accountDetails": "Valid routing number"
}