Skip to content

KYC / AML

All requests require clientID and developerAPIKey parameters for authentication.

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

Endpoints


POST /v3/deleteKycAml

This method is used to delete KYC/AML details of a particular party from Transact API. The delete is a virtual delete. You will need to specify the Party ID as a request parameter to delete the details.

Parameters

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

Example Request

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

Response

Example Response

{
  "statusCode": "101",
  "statusDesc": "KYC AML Status has been Deleted"
}

POST /v3/getKycAml

This method returns the current KYC and AML review status for a single party. Pass the Party ID (individual party) or Entity ID as a request parameter. The response reflects the latest status values stored on the party record; it does not re-run any verification.

Parameters

Parameter Type Required Description
partyId string Yes Party ID (individual, e.g. P12345) or Entity ID (e.g. E12345) generated by the API when the party or entity was created (createParty / createEntity)

Example Request

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

Response

Field Type Description
statusCode string 101 on success
statusDesc string Ok on success
KYC Status string Current KYC review status of the party, echoed as stored on the party record. Typical values: Pending, Auto Approved, Disapproved, Manually Approved, Needs More Info, New Info Added
Party Status object AML status detail for the party (see below)
Party Status.PartyID string The Party ID or Entity ID echoed from the request
Party Status.AML status string Current AML review status of the party, echoed as stored on the party record. Typical values: Pending, Auto Approved, Disapproved, Manually Approved, Needs More Info, New Info Added
Party Status.AML date string Date the AML status was last set, formatted MM-DD-YYYY

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "KYC Status": "Disapproved",
  "Party Status": {
    "PartyID": "P41331",
    "AML status": "Auto Approved",
    "AML date": "08-06-2018"
  }
}

POST /v3/getKycAmlResponse

This method is used to get all information about an individual Party. The Party ID and type must be specified as a request parameter to get the party KYC AML information.

Parameters

Parameter Type Required Description
partyId string Yes Party ID that is generated by the API once an individual party is created (createParty).
type string Yes Type (This will be either Basic, Enhanced or AML Only)

Example Request

curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/getKycAmlResponse
 -d developerAPIKey=somedeveloperkey
 -d clientID=someclientid
 -d partyId=P79443
 -d type=basic

Response

Field Type Description
kycamlDetails object Most recent stored KYC/AML response for the matched party and type
createdAt string Timestamp the stored KYC/AML response was created; null when not recorded

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "createdAt": "2023-06-14 09:21:47",
  "kycamlDetails": {
    "statusCode": "101",
    "statusDesc": "Ok",
    "kyc": {
      "response": {
        "id-number": "3429150818",
        "summary-result": {
          "key": "id.success",
          "message": "PASS"
        },
        "results": {
          "key": "result.match",
          "message": "ID Located"
        },
        "qualifiers": {
          "qualifier": {
            "key": "resultcode.zip.does.not.match",
            "message": "ZIP Code Does Not Match"
          }
        },
        "idnotescore": "0"
      },
      "kycstatus": "Auto Approved",
      "amlstatus": "Auto Approved"
    }
  }
}

POST /v3/performAml

* This Method has third party fees associated with it that will be charged for each use. The cost to use this method is $0.15 each time the method is invoked. (Only applies in live API environment. Does not apply in the Sandbox Environment) *** Perform AML(Anti-Money Laundering) Checks for Entity Parties(createEntity).

Parameters

Parameter Type Required Description
partyId string Yes Party ID or Entity ID that is generated by the API when an individual party or entity party is created (createParty / createEntity).

Example Request

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

Response

Field Type Description
partyDetails object AML result detail (see below)
partyDetails.response object Raw AML watch-list response from the verification provider
partyDetails.amlStatus string Resulting AML status: Auto Approved (no watch-list match) or Disapproved (watch-list match)

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "partyDetails": {
    "response": {
      "id-number": "2180907751",
      "restriction": {
        "key": "global.watch.list.no.match",
        "message": "Patriot Act - No Match"
      }
    },
    "amlStatus": "Auto Approved"
  }
}

POST /v3/performKycAml

* This Method has third party fees associated with it that will be charged for each use. The cost to use this method is $2.00 each time the method is invoked. (Only applies in live API environment. Does not apply in the Sandbox Environment) *** This method is used to perform KYC(Know Your Customer) checks and AML(Anti-Money Laundering) checks for Individual Parties Contact techsupport@northcapital.com to get instructions on how to test KYC/AML in our sandbox environment.

Parameters

Parameter Type Required Description
partyId string Yes Party ID (e.g. P12345) generated by the API when an individual party is created (createParty), or Entity ID (e.g. E12345) generated when an entity is created (createEntity)

Example Request

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

Response

The response shape depends on the party type.

For individual parties (created via createParty):

Field Type Description
kyc object KYC/AML result: raw provider response (including verification questions), plus resulting kycstatus and amlstatus

For entity parties (created via createEntity, i.e. the party record carries an EIN), the kyc field is not returned. Instead:

Field Type Description
AML SCORE object or integer {"OFAC": "<watch-list score>"} when a watch-list score is returned; 0 when no score is available

Example Response (individual party)

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "kyc": {
    "response": {
      "id-number": "3028167143",
      "summary-result": {
        "key": "id.success",
        "message": "PASS"
      },
      "results": {
        "key": "result.match",
        "message": "ID Located"
      },
      "qualifiers": {
        "qualifier": [
          {
            "key": "resultcode.address.does.not.match",
            "message": "Address Does Not Match"
          },
          {
            "key": "resultcode.street.number.does.not.match",
            "message": "Street Number Does Not Match"
          }
        ]
      },
      "idnotescore": "0",
      "questions": {
        "question": [
          {
            "prompt": "Between 1979 and 1980, in which State did you live?",
            "type": "prior.residence.state.multiyear",
            "answer": [
              "NORTH DAKOTA",
              "NEW YORK",
              "NEBRASKA",
              "None of the above"
            ]
          },
          {
            "prompt": "What is the approximate square footage of the property at 222333 PEACHTREE PLACE?",
            "type": "property.size",
            "answer": [
              "1,000 or less",
              "1,001 - 1,500",
              "1,501 - 2,000",
              "2,001 - 2,500",
              "Over 2,500",
              "None of the above"
            ]
          },
          {
            "prompt": "Which person is not a relative or someone that you know?",
            "type": "person.not.known",
            "answer": [
              "SUSAN BROWN",
              "PORTER SMITH",
              "DAVID BROWN",
              "None of the above"
            ]
          },
          {
            "prompt": "At which of the following addresses have you lived?",
            "type": "previous.address",
            "answer": [
              "3 CRESSING CT",
              "4344 BACKTRAIL DR",
              "1084 BPEACHTREE CT",
              "None of the above"
            ]
          },
          {
            "prompt": "In which city is ANY STREET?",
            "type": "city.of.residence",
            "answer": [
              "ALMO",
              "ATLANTA",
              "MINOT",
              "None of the above"
            ]
          }
        ]
      }
    },
    "kycstatus": "Auto Approved",
    "amlstatus": "Auto Approved"
  }
}

Example Response (entity party)

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "AML SCORE": {
    "OFAC": "0"
  }
}

POST /v3/performKycAmlBasic

* This Method has third party fees associated with it that will be charged for each use. The cost to use this method is $0.85 each time the method is invoked. (Only applies in live API environment. Does not apply in the Sandbox Environment) *** This method is used to perform KYC(Know Your Customer) checks and AML(Anti-Money Laundering) checks for Individual Parties Contact techsupport@northcapital.com to get instructions on how to test KYC/AML in our sandbox environment.

Parameters

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

Example Request

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

Response

The response shape depends on the party type.

For individual parties (created via createParty):

Field Type Description
kyc object KYC/AML result: raw provider response, plus resulting kycstatus and amlstatus

For entity parties (created via createEntity, i.e. the party record carries an EIN), the kyc field is not returned. Instead:

Field Type Description
AML SCORE object or integer {"OFAC": "<watch-list score>"} when a watch-list score is returned; 0 when no score is available

Example Response (individual party)

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "kyc": {
    "response": {
      "id-number": "3298151570",
      "summary-result": {
        "key": "id.success",
        "message": "PASS"
      },
      "results": {
        "key": "result.match",
        "message": "ID Located"
      },
      "qualifiers": {
        "qualifier": [
          {
            "key": "resultcode.address.does.not.match",
            "message": "Address Does Not Match"
          },
          {
            "key": "resultcode.street.number.does.not.match",
            "message": "Street Number Does Not Match"
          }
        ]
      },
      "idnotescore": "0"
    },
    "kycstatus": "Auto Approved",
    "amlstatus": "Auto Approved"
  }
}

POST /v3/requestKycAml

*** This Method has fees associated with it that will be charged for each use. The cost to use this method is $25 each time the method is invoked on an individual party and $100 per level of entity verification. (Only applies in live API environment. Does not apply in the Sandbox Environment) *** This method is used to request that KYC & AML be manually verified. Can only be called once per Party ID. Please also see updateKycAmlStatus.

Parameters

Parameter Type Required Description
investorId string Yes Party ID (e.g. P45698), Entity ID (e.g. E25874) or Account ID (e.g. A69854) generated by the API

Example Request

curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/requestKycAml
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d investorId=P12345

Response

Field Type Description
requestDetails array Array containing a single object with the investorId and the generated requestId

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "requestDetails": [
    {
      "investorId": "P12345",
      "requestId": "9845687"
    }
  ]
}

PUT /v3/updateKycAml

* This Method has third party fees associated with it that will be charged for each use. The cost to use this method is $1.02 each time the method is invoked. (Only applies in live API environment. Does not apply in the Sandbox Environment) *** This method is used to verify the KYC(Know Your Customer) Status, after the 'performKycAml' autocheck is done. This method will generate 5 followup questions which the user has 600 seconds to answer 3 out of the 5 correctly to pass.

Parameters

Parameter Type Required Description
partyId string Yes Party ID that is generated by the API when an individual party is created (createParty)
noOfqns integer Yes Number of Questions
idNumber integer Yes ID Number generated when performKycAml is performed.
type1 string Yes First KYC Question (Generated by the third party provider)
qns1 string Yes First KYC Answer (Generated by the third party provider)
type2 string Yes Second KYC Question (Generated by the third party provider)
qns2 string Yes Second KYC Answer (Generated by the third party provider)
type3 string Yes Third KYC Question (Generated by the third party provider)
qns3 string Yes Third KYC Answer (Generated by the third party provider)
type4 string Yes Fourth KYC Question (Generated by the third party provider)
qns4 string Yes Fourth KYC Answer (Generated by the third party provider)
type5 string Yes Fifth KYC Question (Generated by the third party provider)
qns5 string Yes Fifth KYC Answer (Generated by the third party provider)

Example Request

curl -k -X PUT https://api-sandboxdash.norcapsecurities.com/v3/updateKycAml 
-d developerAPIKey=somedeveloperkey 
-d clientID=someclientid 
-d partyId=48587 
-d noOfqns=5 
-d idNumber=23265625 
-d type1=current.county.b 
-d qns1=ATLANTA  
-d type2=city.of.residence 
-d qns2=December 2006 
-d type3=previous.address 
-d qns3=2005 
-d type4=alternate.names.phone 
-d qns4=2-3 years 
-d type5=residence.type 
-d qns5=USA

Response

On success (questions answered correctly):

Field Type Description
Financial investor details object Result detail (see below)
Financial investor details.partyId string ID for the Party
Financial investor details.kycStatus string KYC Status of the Party; always Auto Approved on success

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "Financial investor details": {
    "partyId": "P88531",
    "kycStatus": "Auto Approved"
  }
}

Failure Responses

When the verification provider reports the questions were answered incorrectly, the method returns HTTP 200 with:

Field Type Description
statusCode string 145
statusDesc string Error message from the verification provider
idologyResponse object Provider result detail: idologyResult and the raw provider idologyResponse

When the provider returns neither a pass nor a fail result (an error), the method returns HTTP 404 with statusCode 145 and the same idologyResponse object, without a statusDesc.


POST /v3/updateKycAmlStatus

This method is used only when performing a manual KYC/AML review (see requestKycAml). Calling it sets the KYC or AML status to New Info Added, notifying the North Capital review team that the requested documents have been uploaded to the party. Sending status Updated Review Requested instead initiates a fresh re-review of a party whose KYC/AML review was previously completed.

Note: this endpoint is served by the manual-review service rather than the core TAPI handlers, so its response payload may vary. The status envelope (statusCode / statusDesc) is always returned; the partyDetails payload reflects the party's KYC/AML status after the update.

Parameters

Parameter Type Required Description
partyId string Yes Party ID or Entity ID generated by the API when the party or entity was created (createParty / createEntity)
type string Yes Whether the update targets the KYC or the AML status
status string Yes New Info Added to flag an in-progress review (when the current status is Needs More Info), or Updated Review Requested to request a new re-review

Example Request

curl -k -X POST https://api-sandboxdash.norcapsecurities.com/v3/updateKycAmlStatus
-d developerAPIKey=somedeveloperkey
-d clientID=someclientid
-d partyId=P39944
-d type=KYC
-d status=New Info Added

Response

Field Type Description
statusCode string 101 on success
statusDesc string Ok on success
partyDetails array Result payload: [success, [partyStatus]] where success is a boolean and partyStatus carries the party's resulting partyId, KYCstatus, and AMLstatus

Example Response

{
  "statusCode": "101",
  "statusDesc": "Ok",
  "partyDetails": [
    true,
    [
      {
        "partyId": "P39944",
        "KYCstatus": "New Info Added",
        "AMLstatus": "Auto Approved"
      }
    ]
  ]
}