Skip to content

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 / Issuer
accountId string Yes Account ID that is generated by the API when an Account is created (createAccount). Required when types is Account
issuerId string Yes Issuer ID that is generated by the API when an Issuer is created (createIssuer). Required when types is Issuer
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

The details are returned under the key External Account Details when types is Account, or Issuer External Account Details when types is Issuer.

Field Type Description
accountId string Account ID (issuerId is returned instead when types is Issuer)
ExtAccountfullname string External account full name
Extnickname string External account nickname
ExtRoutingnumber string External account bank routing number (base64-encoded)
ExtAccountnumber string External account bank account number (base64-encoded)
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. Limited to your environment maximum.
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

The response shape depends on the client's payment provider.

Field Type Description
TradeFinancialDetails array Returned when the payment provider is Tristate or Signature Bank. Array of fund move details
investorExternalAccountDetails object Returned when the payment provider is USAEpay. Transaction result containing RefNum, Error, Result, and ResultCode

Example Response (Tristate / Signature Bank)

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "TradeFinancialDetails": [
    {
      "accountId": "A49501",
      "tradeId": "257528259",
      "offeringId": "81272",
      "totalAmount": "1000.000000",
      "RefNum": "464266069",
      "fundStatus": "Pending"
    }
  ]
}

Example Response (USAEpay)

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "investorExternalAccountDetails": {
    "RefNum": "464266069",
    "Error": "",
    "Result": "Approved",
    "ResultCode": "A"
  }
}

POST /v3/getAchPendingId

This method returns the pending Tristate ACH fund-move transactions for an account. It returns only records whose fundStatus is Pending — i.e. ACH debits that have been initiated (externalFundMove) but not yet settled or voided. If the account has no pending Tristate ACH records, the response returns statusCode 212 with no transaction array.

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

Example Request

curl --request POST \
     --url https://api-sandboxdash.norcapsecurities.com/v3/getAchPendingId \
     --header 'content-type: application/json' \
     --data '
{
  "clientID": "someClientID",
  "developerAPIKey": "someDeveloperAPIKey",
  "accountId": "A12345"
}
'

Response

Returns the matching pending Tristate ACH transactions in the investorExternalAccountDetails array. Each element contains the following fields:

Field Type Description
accountId string Account ID the transaction belongs to
tradeId string Trade ID associated with the fund move
offeringId string Offering ID the trade is invested in
Bankname string Name of the external bank the funds are debited from
totalAmount decimal Amount of the ACH debit
Accountnumber string External bank account number (base64-encoded)
Routingnumber string External bank ABA routing number (base64-encoded)
Accountfullname string Account holder's full name on the external bank account
transactionstatus string Tristate transaction approval state. Values: Pending, Approved
routingNumberStatus string Routing number verification state. Value: Verified
fundStatus string Settlement status of the fund move. Always Pending for records returned by this method
createdDate string Timestamp the transaction was created

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "investorExternalAccountDetails": [
    {
      "accountId": "A1543842",
      "tradeId": "257528259",
      "offeringId": "81272",
      "Bankname": "America First Credit Union",
      "totalAmount": "1000.000000",
      "Accountnumber": "MTExMTIyMjIzMzMzMTExMQ==",
      "Routingnumber": "MDIxNTMxMzIz",
      "Accountfullname": "Test Account Name",
      "transactionstatus": "Pending",
      "routingNumberStatus": "Verified",
      "fundStatus": "Pending",
      "createdDate": "2024-05-01 10:15:00"
    }
  ]
}

POST /v3/getExternalAccount

Parameters

Parameter Type Required Description
types string Yes Account / Issuer
accountId string Yes Account Id that is generated by the API when an Account is created (createAccount). Required when types is Account
issuerId string Yes Issuer Id that is generated by the API when an Issuer is created (createIssuer). Required when types is Issuer

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 (issuerId is returned instead when types is Issuer)
statusDesc object External account details
statusDesc.AccountName string Account holder's full name on the external bank account
statusDesc.AccountNickName string Nickname for the external account
statusDesc.AccountRoutingNumber string External bank ABA routing number (decoded, plaintext)
statusDesc.AccountNumber string External bank account number (decoded, plaintext)
statusDesc.accountType string Account type: Checking / Savings
statusDesc.updatedDate string Timestamp the external account was last updated
statusDesc.createdDate string Timestamp the external account was created. Not returned when types is Issuer

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
investorExternalAccountDetails array 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
accountDetails array Array of external fund move details for an account that includes all information for the fund moves created for the matched account

The fields in each element depend on the client's payment provider. Tristate / Signature Bank records contain the fields shown in the example below. USAEpay records instead contain accountId, offeringId, totalAmount, checknumber, Accountnumber, Routingnumber, description, refnum, fundStatus, and createdDate (no tradeId, Bankname, Accountfullname, transactionstatus, routingNumberStatus, or errors fields).

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": "Submitted",
      "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 object Returns the fund move status. For Tristate / Signature Bank clients this contains fundStatus and error. For USAEpay clients this is the USAEpay transaction status object
ACHDetails object Returns the ACH details. For USAEpay clients the object contains accountId, accountName, clientName, providerName, createdDate, and offeringName (instead of issueName)

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",
    "developerAPIKey": "somedeveloperkey",
    "accountName": "John Smith's Account",
    "clientName": "example client",
    "clientId": "someclientid",
    "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

The details are returned under the key Account External Account Details when types is Account, or Issuer External Account Details when types is Issuer.

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 string External Bank Account - Routing Number (base64-encoded)
ExtAccountnumber string External Bank Account - Account Number (base64-encoded)
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",
  "Account External Account Details": [
    true,
    [
      {
        "accountId": "5705166",
        "ExtAccountfullname": "John",
        "Extnickname": "John account",
        "ExtRoutingnumber": "MzQ1NDM1MzQ=",
        "ExtAccountnumber": "MTIzNDU2Nzg5MA==",
        "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"
}