Customer
A customer is a single user in CorePro. Almost every action in CorePro requires a customerId to identify for whom the action is being performed. To correlate a customer in CorePro to a user in your system, use the tag
property.
A program may be configured to automatically create all customers in a Verified
status. This is typically used when the client has already verified the customer's identity itself. Otherwise, a program will be configured to require customers to verify their identity.
If Identity Verification Type is None
:
/customer/create
is called- Customer is created with a
Verified
status. - Call returns, workflow ends.
If Identity Verification Type is OFAC Only
:
/customer/create
is called.- Customer is created with an
Initiated
status. - OFAC check is performed.
-
On OFAC failure:
- Customer is changed to
Manual Review
status. - Call returns. Note no Qualifile check is ever performed.
- Customer will need to upload one or more bank required documents (via
/customerdocument/upload
- Bank of Record will set requirements on documentation that will be accepted for review. In most cases it will be aDriversLicense
along with either aUtilityBill
or aBankStatement
. - Time passes (possibly several days).
-
If documents are not uploaded in a timely fashion (Bank of Record defines timely fashion -- typically 10-14 days):
- Customer status is changed to
Expired
- Workflow ends.
- Customer status is changed to
-
If documents are uploaded within the time frame:
- Bank employee reviews customer information and documentation via the CorePro Admin site.
- Customer may be contacted at this point by bank employee, if needed.
- Bank employee marks customer as either
Verified
orDenied
using the CorePro Admin site. - Workflow ends.
- Customer is changed to
-
On OFAC success:
-
If Qualifile (aka Chexsystems) is NOT enabled:
- Customer is changed to
Verified
status. - Call returns, workflow ends.
- Customer is changed to
-
If Qualifile (aka Chexsystems) IS enabled, check is performed:
-
If result is
DECLINE
:- Customer is changed to
Denied
status. - Call returns, workflow ends.
- Customer is changed to
-
If result is
REVIEW
:- Customer status is changed to
Manual Review
. - Call returns.
- Customer will need to upload one or more bank required documents (via
/customerdocument/upload
- Bank of Record will set requirements on documentation that will be accepted for review. In most cases it will be aDriversLicense
along with either aUtilityBill
or aBankStatement
. - Time passes (possibly several days).
-
If documents are not uploaded in a timely fashion (Bank of Record defines timely fashion -- typically 10-14 days):
- Customer status is changed to
Expired
- Workflow ends.
- Customer status is changed to
-
If documents are uploaded within the time frame:
- Bank employee reviews customer information and documentation via the CorePro Admin site.
- Customer may be contacted at this point by bank employee, if needed.
- Bank employee marks customer as either
Verified
orDenied
using the CorePro Admin site. - Workflow ends.
- Customer status is changed to
-
Else (result is
ACCEPT
)- Customer status is changed to
Verified
. - Call returns, workflow ends.
- Customer status is changed to
-
If result is
-
If Qualifile (aka Chexsystems) is NOT enabled:
If Identity Verification Type is Full
:
/customer/initiate
is called. (i.e./customer/create
is not needed in this workflow)- Customer is created in
Initiated
status (i.e. pending verification). This begins an identity verification session, which is valid for approximately 20 minutes. After that time period, the customer will need to restart the identity verification process. - OFAC check is performed.
-
On OFAC failure:
- Customer status is changed to
Manual Review
. - Call returns. Note no Qualifile check is ever performed, nor are challenge questions returned.
- Customer will need to upload one or more bank required documents (via
/customerdocument/upload
- Bank of Record will set requirements on documentation that will be accepted for review. In most cases it will be aDriversLicense
along with either aUtilityBill
or aBankStatement
. - Time passes (possibly several days).
-
If documents are not uploaded in a timely fashion (Bank of Record defines timely fashion -- typically 10-14 days):
- Customer status is changed to
Expired
- Workflow ends.
- Customer status is changed to
-
If documents are uploaded within the time frame:
- Bank employee reviews customer information and documentation via the CorePro Admin site.
- Customer may be contacted at this point by bank employee, if needed.
- Bank employee marks customer as either
Verified
orDenied
using the CorePro Admin site. - Workflow ends.
- Customer status is changed to
-
On OFAC success:
-
If Qualifile (aka Chexsystems) is enabled, check is performed:
-
If result is
DECLINE
:- Customer status is changed to
Denied
. - Call returns, workflow ends.
- Customer status is changed to
-
If result is
REVIEW
:- Customer status is changed to
Manual Review
. - Call returns with challenge questions.
/customer/verify
is called with the answers to the questions.- Customer will need to upload one or more bank required documents (via
/customerdocument/upload
- Bank of Record will set requirements on documentation that will be accepted for review. In most cases it will be aDriversLicense
along with either aUtilityBill
or aBankStatement
. - Time passes (possibly several days).
-
If documents are not uploaded in a timely fashion (Bank of Record defines timely fashion -- typically 10-14 days):
- Customer status is changed to
Expired
- Workflow ends.
- Customer status is changed to
-
If documents are uploaded within the time frame:
- Bank employee reviews customer information and documentation via the CorePro Admin site.
- Customer may be contacted at this point by bank employee, if needed.
- Bank employee marks customer as either
Verified
orDenied
using the CorePro Admin site. - Workflow ends.
- Customer status is changed to
-
Else (result is
ACCEPT
)- Customer status remains
Initiated
until challenge questions have been answered.
- Customer status remains
-
If result is
-
Call returns with challenge questions that need to be presented to the customer. These questions are specific to the customer based on the information provided and are multiple choice in nature.
In the Sandbox environment, there is a specific set of customer information that can be verified, and a specific set of questions will always be presented. See the documentation provided to your organization at time of signing up with CorePro for details about customer identity verification in the Sandbox environment.
-
If Qualifile (aka Chexsystems) is enabled, check is performed:
/customer/verify
is called with the answers to the questions.-
If a majority of the answers are valid and the information provided is accurate:
- Customer status is set to
Verified
. - Call returns, workflow ends.
- Customer status is set to
-
Otherwise:
- If most questions are answered correctly and/or most information provided is correct, the status of the customer is set to
Manual Review
. A call center representative using the CorePro Admin Console will need to be involved to move the customer to aVerified
status. See documentation provided to your organization at time of signing up with CorePro for further details. - If only some questions or no are answered correctly, or the information provided is not close enough to correct, the customer status will be set to
Denied
. - If a customer is in
Manual Review
orInitiated
status for a number of days, their status will automatically be set toExpired
and they will need to restart the identity verification process to gain access to CorePro. -
There is roughly a 20 minute window the customer has to answer these questions before they timeout. After the questions have timed out, the customer is required to restart the identity verification process from the beginning.
CorePro requires a unique
taxId
for any customer to start the identity verification process. This means if an identity verification session is abandoned (by calling/customer/initiate
but never calling the subsequent/customer/verify
), thetaxId
for that session is still considered "reserved", as it is already associated to a partially-createdcustomer
. To disassociate thetaxId
, call/customer/archive
to archive that partially-createdcustomer
. ThattaxId
can then be used in a new call to/customer/initiate
to create a newcustomer
and start a new identity verification session.
- If most questions are answered correctly and/or most information provided is correct, the status of the customer is set to
customer Object
Represents a single user in CorePro.
details
Property | Data Type (length) |
Description | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
customerId |
integer | The unique identifier for a customer in CorePro. Will be returned on /customer/create call. Used as a parameter to almost every other CorePro route. |
||||||||||||||||||||
firstName |
string (64) | First (Given) Name | ||||||||||||||||||||
middleName |
string (64) | Middle Name | ||||||||||||||||||||
lastName |
string (128) | Last Name (Surname) | ||||||||||||||||||||
suffix |
string (20) | A customer's name suffix. e.g. "Sr.", "Esq.", "Ph.D." | ||||||||||||||||||||
birthDate |
datetime | Example format: 1976-07-04T00:00:00.000+00:00 | ||||||||||||||||||||
gender |
string (1) | Possible values include:
|
||||||||||||||||||||
culture |
string (50) | Accepted values vary by program. Examples are:
|
||||||||||||||||||||
tag |
string (50) | A program-wide unique identifier supplied by the client to represent exactly one customer in CorePro in production. Sandbox does allow duplicate tags for testing. Typically represents a single user in your system. Maximum length is 50 characters. Note there are exactly two ways to retrieve a specific customer:
|
||||||||||||||||||||
status |
string (50) |
Possible values include:
|
||||||||||||||||||||
createdDate |
datetime | Date the customer was created. Note a customer may have been created but not available for use, depending on the isLocked or status properties. |
||||||||||||||||||||
taxId |
string (30) | SSN in the US. Specify only the digits, no formatting of any kind. i.e. exclude dashes, spaces, etc. | ||||||||||||||||||||
taxIdMasked |
string (10) | Last 4 digits of the taxId property value, preceded by 6 '*'. e.g.: ******1234 |
||||||||||||||||||||
driversLicenseNumber |
string (30) | The identifying number from a government-issued driver's license | ||||||||||||||||||||
driversLicenseNumberMasked |
string (10) | Last 4 digits of the driversLicenseNumber property value, preceded by 6 '*'. e.g.: ******1234 |
||||||||||||||||||||
driversLicenseState |
string (2) | State from which the driver's license is issued. i.e., IA for Iowa | ||||||||||||||||||||
driversLicenseIssueDate |
datetime | Date the driver's license was issued. Example format: 1976-07-04T00:00:00.000+00:00 | ||||||||||||||||||||
driversLicenseExpireDate |
datetime | Date the driver's license expires. Example format: 1976-07-04T00:00:00.000+00:00 | ||||||||||||||||||||
passportNumber |
string (30) | The identifying number from a government-issued passport | ||||||||||||||||||||
passportNumberMasked |
string (10) | Last 4 digits of the passportNumberMasked property value, preceded by 6 '*'. e.g.: ******1234 |
||||||||||||||||||||
passportCountry |
string (5) | Country from which the passport is issued. i.e., US for United States | ||||||||||||||||||||
passportIssueDate |
datetime | Date the passport was issued. Example format: 1976-07-04T00:00:00.000+00:00 | ||||||||||||||||||||
passportExpireDate |
datetime | Date the passport expires. Example format: 1976-07-04T00:00:00.000+00:00 | ||||||||||||||||||||
emailAddress |
string (255) | someone@example.com | ||||||||||||||||||||
isActive |
boolean | Deprecated. Will always return true |
||||||||||||||||||||
isLocked |
boolean | Denotes if a customer is locked, typically caused by fraud prevention mechanisms or manual intervention via the Admin console. A locked customer can not transfer any funds. | ||||||||||||||||||||
lockedDate |
datetime | Denotes the last time isLocked was set to true . Note if isLocked is changed to false , this value will not reset. Example format: 2014-01-01T00:00:00.000+00:00 |
||||||||||||||||||||
lockedReason |
string (255) | The reason isLocked was set to true. Freeform. Note if isLocked is changed to false , this value will not reset. |
||||||||||||||||||||
deceasedDate |
datetime | Denotes the date the customer was reported as deceased. Example format: 2014-01-01T00:00:00.000+00:00 | ||||||||||||||||||||
isSubjectToBackupWithholding |
boolean | All customers need to indicate whether they are subject to backup withholding. CorePro will withhold the appropriate percentage of earned interest and submit these funds directly to the IRS. The amount withheld will be reported on the annual 1099-INT generated by CorePro. Please see the Backup Withholding topic at the IRS website for additional details. | ||||||||||||||||||||
isOptedInToBankCommunication |
boolean | Denotes if customer opts in to receiving marketing notifications from the bank. Note customer may possibly still receive other required notifications from the bank regardless of this flag -- it depends on your program and the bank. | ||||||||||||||||||||
isDocumentsAccepted |
boolean | Only required when creating a new customer. Confirms that customer viewed and accepted all documents returned via the /bankdocument/list route |
||||||||||||||||||||
customField1 |
string (100) | A property for holding client-defined data. There is no business logic in CorePro for a custom field. | ||||||||||||||||||||
customField2 |
string (100) | A property for holding client-defined data. There is no business logic in CorePro for a custom field. | ||||||||||||||||||||
customField3 |
string (100) | A property for holding client-defined data. There is no business logic in CorePro for a custom field. | ||||||||||||||||||||
customField4 |
string (100) | A property for holding client-defined data. There is no business logic in CorePro for a custom field. | ||||||||||||||||||||
customField5 |
string (100) | A property for holding client-defined data. There is no business logic in CorePro for a custom field. | ||||||||||||||||||||
accessTypeCode |
string (4) | The maximum level of access this customer can have.
Possible values:
|
||||||||||||||||||||
lastModifiedDate |
datetime | Date when the object was last altered in any way |
||||||||||||||||||||
lastActivityDate |
datetime | Timestamp for the last time any action was performed on this customer. Actions include listing, editing, archiving, closing, transferring funds, or otherwise "touching" any data specific to this customer, whether it is via the API, a Bulk Transfer Request file, or the Admin console. | ||||||||||||||||||||
phones |
list of phone objects |
|||||||||||||||||||||
addresses |
list of address objects |
|||||||||||||||||||||
accounts |
list of account objects |
|||||||||||||||||||||
externalAccounts |
list of externalAccount objects |
|||||||||||||||||||||
cards |
list of card objects |
archive
Archives a customer. Note this is a one-way function; once archived, a customer can not be un-archived.
POST /customer/archive
Request Body Parameters
customerId |
Required | Customer ID (returned when customer was created) |
archiveReason |
Optional |
Valid values are (Admin Drop-Down values italicized):
Other . Providing a detailed reason is strongly encouraged as it informs and improves fraud detection mechanisms.
|
Response Data
The envelope's "data" property will be absent, but a status of 200 is returned upon success. |
Error Codes
Code | Message (en-US) | Notes |
1-60000 | Any "Common Error Code" may occur. | See Common Error Codes |
60001 | Customer id {0} is invalid. | |
67201 | One or more pending transactions exist. e.g. TransactionId={0}. | |
67202 | One or more accounts have a non-zero balance. e.g. AccountId={0}. | |
67203 | One or more accounts are not in a Closed status. e.g. AccountId={0}. | |
67204 | One or more cards are still active for CustomerId={0}. Those must first be archived. e.g. CardId={0}. |
Example
Request
POST /customer/archive Authorization: Basic PutBase64TokenHere
{ "customerId":3 }
Response
200
{ "errors":[], "status":200 }
create
Create a new customer. Functions properly only if your Program is configured with a Verification Type of None
(no ID verification checks) or OFAC Only
(OFAC file is scanned, no other ID verification).
Note: This route returns a 200 upon success. If you use a Q2 provided SDK, this route returns a 201 upon success instead.
POST /customer/create
Request Body Parameters
firstName |
Required if OFAC Only |
The customer's given name. |
middleName |
Optional | The customer's middle name. |
lastName |
Required if OFAC Only |
The customer's surname. |
suffix |
Optional | The customer's suffix. e.g. "Jr.", "III", "D.D.S." |
birthDate |
Optional | The customer's date of birth. See date formatting at the top of this resource. |
gender |
Optional | Valid values are:
U |
culture |
Optional | Valid values vary by program. Examples are:
en-US |
tag |
Optional | A program-wide unique identifier supplied by the client to represent exactly one customer in CorePro in production. *Sandbox does allow duplicate customer tags for testing* Typically represents a single user in your system. |
taxId |
Optional | The customer's Social Security Number sans formatting (no dashes, no spaces, etc) |
driversLicenseNumber |
Optional | The customer's government-issued driver's license number |
driversLicenseState |
Optional | The US state the customer's driver's license was issued in |
driversLicenseIssueDate |
Optional | The date customer's driver's license was issued |
driversLicenseExpireDate |
Optional | The date customer's driver's license expires |
passportNumber |
Optional | The customer's passport number. |
passportCountry |
Optional | The country the customer's passport was issued from. |
passportIssueDate |
Optional | The date customer's passport was issued |
passportExpireDate |
Optional | The date customer's passport expires |
emailAddress |
Optional | The customer's email address. |
isSubjectToBackupWithholding |
Required | Set to true if customer is subject to backup withholding when interest is paid. Set to false otherwise. |
isOptedInToBankCommunication |
Required | Set to true if the customer opts in to receive communications from the bank. Set to false otherwise. |
isDocumentsAccepted |
Required | Confirms that customer viewed and accepted all documents returned via the /bankdocument/list route |
customField1 |
Optional | Any value up to 100 characters in length |
customField2 |
Optional | Any value up to 100 characters in length |
customField3 |
Optional | Any value up to 100 characters in length |
customField4 |
Optional | Any value up to 100 characters in length |
customField5 |
Optional | Any value up to 100 characters in length |
accessTypeCode |
Optional |
Possible values include:
|
addresses |
Residential is required if OFAC Only |
A list of 0 or more |
phones |
Optional | A list of 0 or more phone Objects to update or add. Note only one of a given phoneType is allowed, meaning if you pass Office as the type and one exists, it will be updated instead of a new one being added. |
Response Data
customerId |
Customer ID of the new customer. This customer will be in a Verified status upon success of this call. |
|
customerToken |
The token for this customer. String up to 5000 characters. |
Note: Only present if program is configured for customer token authorization |
Error Codes
Code | Message (en-US) | Notes |
1-60000 | Any "Common Error Code" may occur. | See Common Error Codes |
60106 | Invalid Verification Level for program. Current Level: '{0}'. | |
60111 | Residence Address is missing. | |
60112 | Residence Zip Code is missing. | |
60201 | First Name is a required field. | |
60202 | Last Name is a required field. | |
60203 | Birth Date is a required field. | |
60204 | Birth Date is invalid. Please enter a valid date after 01/01/1900 and in the past. | |
60205 | Gender is a required field. Valid values are: 'M', 'F', and 'U'. | |
60206 | Gender is invalid. Valid values are: 'M', 'F', and 'U'. | |
60207 | Culture is a required field. | Provide a culture value that has been configured for your program. Typically en-US . |
60208 | Invalid Status. | |
60209 | Tax Id is a required field. | |
60210 | Is Subject To Backup Withholding is a required field. | Specify "true" or "false" for this property. |
60211 | Is Opted In To Bank Communication is a required field. | Specify "true" or "false" for this property. |
60212 | Is Documents Accepted must be ''true''. | Specify "true" for this property. End user should be required to confirm that they have read and accept the terms of all documents returned by /bankdocument/list . |
60213 | ID Verification required for the program specified. | This route cannot be used based on your program configuration. Call /customer/initiate and subsequently /customer/verify instead. |
60214 | A Residence Address is required. | Provide an address object with an addressType of Residence |
60215 | Invalid Address Type. Valid values are: Mailing, Residence, Prior. | |
60216 | Address Line 1 is a required field. | |
60217 | Residential Addresses can not contain a PO Box. | |
60218 | City is a required field. | |
60219 | State is a required field. | |
60220 | Postal Code is a required field. | |
60221 | Country is a required field. | |
60222 | Invalid Phone Type. Valid values are: Home, Mobile, Office. | |
60223 | Phone Number is a required field. | |
60224 | This TaxId is already associated with an customer. | Provide a Tax Id unique to this customer. |
60225 | Tag '{0}' is already associated with another customer. | Provide a unique tag for this customer, or no tag at all. |
60226 | Tag '{0}' is already associated with another customer. | Provide a unique tag for this customer, or no tag at all. |
60230 | Driver license state is required when driver license number is provided. | |
60235 | Passport country is required when passport number is provided. | |
60250 | Only three addresses are allowed -- one for each valid type of Residence, Mailing, or Prior. | Do not provide more than 3 address objects, each one with a different value for addressType. |
60251 | Only three phones are allowed -- one for each valid type of Home, Mobile, or Office. | Do not provide more than 3 phone objects, each one with a different value for phoneType. |
60260 | Registration attempt limit has been reached. Please try again at a later date. | |
66801 | Invalid Phone Type. Valid values are: 'Home', 'Mobile', 'Office'. | |
66802 | Phone Number is a required field. | |
66901 | Invalid Address Type. Valid values are: Mailing, Residence, Prior. | |
66902 | Address Line 1 is a required field. | |
66903 | City is a required field. | |
66904 | State is a required field. | |
66905 | Postal Code is a required field. | |
66906 | Country is a required field. | |
66907 | Residential Addresses can not contain a PO Box. | |
66908 | DPS Clients Only: Address lines must not exceed 76 characters. | |
69301 | Denial limit for this taxId has been exceeded. Registration may be attempted again on {0:d}. | NOTE: This check is performed only in the Production environment; it is not performed in the Sandbox environment. |
Example
Request
POST /customer/create Authorization: Basic PutBase64TokenHere
{ "firstName":"John", "middleName":"Allen", "lastName":"Smith", "birthDate":"1976-07-04T00:00:00.000+00:00", "gender":"M", "culture":"en-US", "customField1": "ABCD", "tag":"MB3823823", "taxId":"123456789", "driversLicenseNumber":"543543443", "driversLicenseState":"IA", "driversLicenseExpireDate":"2014-07-04T00:00:00.000+00:00", "emailAddress":"john.a.smith@test.com", "isSubjectToBackupWithholding":false, "isOptedInToBankCommunication":true, "isDocumentsAccepted":true, "phones": [ { "phoneType":"Home", "number":"5155551212" }, { "phoneType":"Mobile", "number":"5155551414" } ], "addresses": [ { "addressType":"Mailing", "addressLine1":"PO Box 123", "city":"Anytown", "state":"IA", "postalCode":"50001", "country":"USA" }, { "addressType":"Residence", "addressLine1":"123 Main St", "city":"Anytown", "state":"IA", "postalCode":"50001", "country":"USA" } ] }
Response
201
{ "data" : { "customerId": 1583018, "messages": [], "questions": [], "verificationStatus": "success" }, "errors":[], "status":200 }
get
Retrieve customer information by the customerId created by CorePro.
Note: When you provide an invalid identifier (id,tag, or emailAddress), all routes ending with /get
returns 400 (Bad Request). This route returns a filled out corresponding accounts array.
GET /customer/get/{customerId}
Request Parameters
customerId |
Required | Customer ID (returned when customer was created) |
Response Data
A customer Object |
Error Codes
Code | Message (en-US) | Notes |
1-60000 | Any "Common Error Code" may occur. | See Common Error Codes |
60001 | Customer id {0} is invalid. |
Example
Request
GET /customer/get/3 Authorization: Basic PutBase64TokenHere
Response
200
{ "data": { "accessTypeCode" : "FULL", "accounts": [ { "accountBalance": 0.0000, "accountId": 220, "accountNumber": "00000000000000078", "accountNumberMasked": "*************0078", "availableBalance": 0.0000, "closedDate": "9999-12-31T23:59:59.999+00:00", "createdDate": "2014-02-24T16:36:08.469-06:00", "customerId": 3, "customField1": "982734", "name": "Savings", "recurringContributionFromExternalAccountId": 0, "recurringContributionType": "None", "status": "Open", "type": "Prepaid", "productId": 345 } ], "addresses": [ { "addressLine1": "222333 PeachTree Place", "addressLine2": "", "addressType": "Residence", "city": "Atlanta", "country": "US", "customerAddressId": 218, "postalCode": "30318", "state": "GA" } ], "birthDate": "1975-02-28T00:00:00.000-06:00", "createdDate": "2014-02-24T16:36:08.469-06:00", "culture": "en-US", "customerId": 217, "customField1": "XYZ", "driversLicenseNumber": "ABC123XYZ", "driversLicenseState":"GA", "emailAddress": "", "externalAccounts": [ { "accountNumberMasked": "******9873", "customerId": 3, "customField1": "ABCD123", "externalAccountId": 221, "firstName": "Brock", "isActive": true, "isLocked": false, "lastName": "Weaver", "lockedDate": "9999-12-31T23:59:59.999+00:00", "name": "PrepaidAbc", "nickName": "pp1", "routingNumberMasked": "******1234", "status": "Unverified", "statusDate": "2014-02-24T16:36:29.102-06:00", "tag": "tag1", "type": "Savings" } ], "firstName": "John", "gender": "M", "isActive": true, "isDocumentsAccepted": true, "isLocked": false, "isOptedInToBankCommunication": true, "isSubjectToBackupWithholding": false, "lastName": "Smith", "lockedDate": "9999-12-31T23:59:59.999+00:00", "middleName": "", "phones": [ { "customerPhoneId": 219, "number": "515-555-1234", "phoneType": "Mobile" } ], "status": "Verified", "tag": "cust1008909", "taxId": "112223333" }, "errors": [], "status": 200 }
getByEmail
Retrieve customer information by the emailAddress
specified at customer creation time.
Note: When you provide an invalid identifier (id,tag, or emailAddress), all routes ending with /getByEmail
returns 400 (Bad Request). This route returns a filled out corresponding accounts array.
GET /customer/getByEmail/{emailAddress}
Request Parameters
emailAddress |
Required | The emailAddress for this customer. String up to 100 chars. |
Response Data
A customer Object |
Error Codes
Code | Message (en-US) | Notes |
1-60000 | Any "Common Error Code" may occur. | See Common Error Codes |
69501 | EmailAddress must be specified. |
Example
Request
GET /customer/getByEmail/nobody@example.com Authorization: Basic PutBase64TokenHere
Response
200
{ "data": { "accessTypeCode" : "FULL", "accounts": [ { "accountBalance": 0.0000, "accountId": 220, "accountNumber": "00000000000000078", "accountNumberMasked": "*************0078", "availableBalance": 0.0000, "closedDate": "9999-12-31T23:59:59.999+00:00", "createdDate": "2014-02-24T16:36:08.469-06:00", "customerId": 3, "customField1": "XYZ456", "name": "Savings", "recurringContributionFromExternalAccountId": 0, "recurringContributionType": "None", "status": "Open", "type": "Prepaid", "productId": 345 } ], "addresses": [ { "addressLine1": "222333 PeachTree Place", "addressLine2": "", "addressType": "Residence", "city": "Atlanta", "country": "US", "customerAddressId": 218, "postalCode": "30318", "state": "GA" } ], "birthDate": "1975-02-28T00:00:00.000-06:00", "createdDate": "2014-02-24T16:36:08.469-06:00", "culture": "en-US", "customerId": 217, "customField1": "23423", "driversLicenseNumber": "", "emailAddress": "nobody@example.com", "externalAccounts": [ { "accountNumberMasked": "******9873", "customerId": 3, "customField1": "ABCD123", "externalAccountId": 221, "firstName": "Brock", "isActive": true, "isLocked": false, "lastName": "Weaver", "lockedDate": "9999-12-31T23:59:59.999+00:00", "name": "PrepaidAbc", "nickName": "pp1", "routingNumberMasked": "******1234", "status": "Unverified", "statusDate": "2014-02-24T16:36:29.102-06:00", "tag": "tag1", "type": "Savings" } ], "firstName": "John", "gender": "M", "isActive": true, "isDocumentsAccepted": true, "isLocked": false, "isOptedInToBankCommunication": true, "isSubjectToBackupWithholding": false, "lastName": "Smith", "lockedDate": "9999-12-31T23:59:59.999+00:00", "middleName": "", "phones": [ { "customerPhoneId": 219, "number": "515-555-1234", "phoneType": "Mobile" } ], "status": "Verified", "tag": "cust1008909", "taxId": "112223333" }, "errors": [], "status": 200 }
getByTag
Retrieve customer information by a unique identifier you specify at customer creation time.
Note: When you provide an invalid identifier (id,tag, or emailAddress), all routes ending with /getByTag
returns 400 (Bad Request). This route returns a filled out corresponding accounts array.
GET /customer/getByTag/{tag}
Request Parameters
tag |
Required | Your unique identifier for this customer in production (i.e. not generated by CorePro; an alternate key). *Sandbox does allow duplicate customer tags for testing*. String up to 50 chars. |
Response Data
A customer Object |
Error Codes
Code | Message (en-US) | Notes |
1-60000 | Any "Common Error Code" may occur. | See Common Error Codes |
65701 | Tag must be specified. |
Example
Request
GET /customer/getByTag/cust1008909 Authorization: Basic PutBase64TokenHere
Response
200
{ "data": { "accessTypeCode" : "FULL", "accounts": [ { "accountBalance": 0.0000, "accountId": 220, "accountNumber": "00000000000000078", "accountNumberMasked": "*************0078", "availableBalance": 0.0000, "closedDate": "9999-12-31T23:59:59.999+00:00", "createdDate": "2014-02-24T16:36:08.469-06:00", "customerId": 3, "customField1": "XYZ456", "name": "Savings", "recurringContributionFromExternalAccountId": 0, "recurringContributionType": "None", "status": "Open", "type": "Prepaid", "productId": 345 } ], "addresses": [ { "addressLine1": "222333 PeachTree Place", "addressLine2": "", "addressType": "Residence", "city": "Atlanta", "country": "US", "customerAddressId": 218, "postalCode": "30318", "state": "GA" } ], "birthDate": "1975-02-28T00:00:00.000-06:00", "createdDate": "2014-02-24T16:36:08.469-06:00", "culture": "en-US", "customerId": 217, "customField1": "23423", "driversLicenseNumber": "", "emailAddress": "", "externalAccounts": [ { "accountNumberMasked": "******9873", "customerId": 3, "customField1": "ABCD123", "externalAccountId": 221, "firstName": "Brock", "isActive": true, "isLocked": false, "lastName": "Weaver", "lockedDate": "9999-12-31T23:59:59.999+00:00", "name": "PrepaidAbc", "nickName": "pp1", "routingNumberMasked": "******1234", "status": "Unverified", "statusDate": "2014-02-24T16:36:29.102-06:00", "tag": "tag1", "type": "Savings" } ], "firstName": "John", "gender": "M", "isActive": true, "isDocumentsAccepted": true, "isLocked": false, "isOptedInToBankCommunication": true, "isSubjectToBackupWithholding": false, "lastName": "Smith", "lockedDate": "9999-12-31T23:59:59.999+00:00", "middleName": "", "phones": [ { "customerPhoneId": 219, "number": "515-555-1234", "phoneType": "Mobile" } ], "status": "Verified", "tag": "cust1008909", "taxId": "112223333" }, "errors": [], "status": 200 }
initiate
This route has been deprecated and should be used for troubleshooting purposes only. Please contact your Sales Representative or Relationship Manager for additional information.
Initiate a new customer for Programs that elected the CorePro identity verification services.
Functions properly only if your Program is configured with an Identity Verification Type of Full
.
If successful (i.e. verificationStatus
= success
), a subsequent call to /customer/verify must be performed,
passing along information returned from this call along with information gathered from the user (i.e. answers to the challenge questions only the "real" person should be able to answer).
To determine the result of this call, please follow these guidelines:
- If HTTP status code is 3XX, 4XX, or 5XX : Customer will be in a
Denied
status. This occurs when a validation rule has been violated or the request to the underlying Idology or Qualifile web services experienced an issue (connection failed, badly formatted payload, internal server error, etc). -
Otherwise, inspect the value of
verificationStatus
to determine your next action:success
- Customer has been deemed trustworthy and is in anInitiated
status. Questions will be returned. These should be displayed to the user and their answers submitted via /customer/verify.failed
- Customer has been deemed not trustworthy and is in aDenied
status. No questions are returned. User is not allowed to use CorePro.manual review
- Insufficient data to confirm or deny customer trustworthiness. Customer is in aManual Review
status. User will need to upload documents via /customerdocument/upload to help prove their identity. These documents will need to be reviewed by a human CSR at a later date.
POST /customer/initiate
Request Body Parameters
firstName |
Required | The customer's given name. |
middleName |
Optional | The customer's middle name. |
lastName |
Required | The customer's surname. |
suffix |
Optional | The customer's suffix. e.g. "Jr.", "III", "D.D.S." |
birthDate |
Required | The customer's date of birth. |
gender |
Optional | Valid values are:
U |
culture |
Optional | Valid values vary by program. Examples are:
en-US |
tag |
Optional | A program-wide unique identifier supplied by the client to represent exactly one customer in CorePro in production. *Sandbox does allow duplicate customer tags for testing* Typically represents a single user in your system. |
taxId |
Required | The customer's Social Security Number sans formatting (no dashes, no spaces, etc) |
driversLicenseNumber |
Optional | The customer's government-issued driver's license number |
driversLicenseState |
Required if driversLicenseNumber is provided. |
The US state the customer's driver's license was issued in |
driversLicenseIssueDate |
Required if driversLicenseNumber is provided. |
The date customer's driver's license was issued |
driversLicenseExpireDate |
Required if driversLicenseNumber is provided. |
The date customer's driver's license expires |
passportNumber |
Optional | The customer's passport number. |
passportCountry |
Required if passportNumber is provided. |
The country the customer's passport was issued from. |
passportIssueDate |
Required if passportNumber is provided. |
The date customer's passport was issued |
passportExpireDate |
Required if passportNumber is provided. |
The date customer's passport expires |
emailAddress |
Optional | The customer's email address. |
isSubjectToBackupWithholding |
Required | Set to true if customer is subject to backup withholding when interest is paid. false otherwise. |
isOptedInToBankCommunication |
Required | Set to true if the customer opts in to receive communications from the bank. false otherwise. |
isDocumentsAccepted |
Required | Confirms that customer viewed and accepted all documents returned via the /bankdocument/list route |
customField1 |
Optional | Any value up to 100 characters in length |
customField2 |
Optional | Any value up to 100 characters in length |
customField3 |
Optional | Any value up to 100 characters in length |
customField4 |
Optional | Any value up to 100 characters in length |
customField5 |
Optional | Any value up to 100 characters in length |
addresses |
Require Residence address |
A list of 1 or more address Objects to update or add. Note only one of a given addressType is allowed, meaning if you pass Mailing as the type and one exists, it will be updated instead of a new one being added. |
phones |
Optional | A list of 1 or more phone Objects to update or add. Note only one of a given phoneType is allowed, meaning if you pass Office as the type and one exists, it will be updated instead of a new one being added. |
Response Data
customerId |
Customer ID of the new customer. | |
customerToken |
The token for this customer. String up to 5000 characters. |
Note: Only present if program is configured for customer token authorization |
verificationId |
Verification ID of the new customer request. Must be passed in the subsequent call to /customer/initiate . |
|
verificationStatus |
Status of the identity verification. Possible values:
|
|
questions |
A list of 4 or more objects with 3 properties each:
|
Error Codes
Code | Message (en-US) | Notes |
1-60000 | Any "Common Error Code" may occur. | See Common Error Codes |
60101 | IDology service call error received. | The content of this error message may be replaced by the actual one received from the IDology service call. |
60102 | IDology service call failure received. | The content of this error message may be replaced by the actual one received from the IDology service call. |
60103 | IDology user not eligible for questions. | The content of this error message may be replaced by the actual one received from the IDology service call. |
60104 | IDology user verification failed. | The content of this error message may be replaced by the actual one received from the IDology service call. |
60105 | IDology ExpectID IQ Time Out. | The content of this error message may be replaced by the actual one received from the IDology service call. |
60106 | Invalid Verification Level for program. Current Level: '{0}'. | |
60151 | IDology service call error received. | The content of this error message may be replaced by the actual one received from the IDology service call. |
60152 | IDology service call failure received. | The content of this error message may be replaced by the actual one received from the IDology service call. |
60201 | First Name is a required field. | |
60202 | Last Name is a required field. | |
60203 | Birth Date is a required field. | |
60204 | Birth Date is invalid. Please enter a valid date after 01/01/1900 and in the past. | |
60205 | Gender is a required field. Valid values are:
|
|
60206 | Gender is invalid. Valid values are:
|
|
60207 | Culture is a required field. | Provide a culture value that has been configured for your program. Typically en-US . |
60208 | Invalid Status. | |
60209 | Tax Id is a required field. | |
60210 | Is Subject To Backup Withholding is a required field. | Specify true or false for this property. |
60211 | Is Opted In To Bank Communication is a required field. | Specify true or false for this property. |
60212 | Is Documents Accepted is a required field. | Specify true for this property. End user should be required to confirm that they have read and accept the terms of all documents returned by /bankdocument/list . |
60214 | A Residence Address is required. | Provide an address object with an addressType of Residence |
60224 | This TaxId is already associated with another customer. |
Provide a Tax Id unique to this customer. NOTE: This check is performed only in the Production environment; it is not performed in the Sandbox environment. |
60225 | Tag '{0}' is already associated with another customer. | Provide a unique tag for this customer, or no tag at all. |
60226 | Either a drivers license number or passport number is required. | |
60230 | Driver license state is required when driver license number is provided. | |
60231 | Driver license issue date is required when driver license number is provided. | |
60232 | Driver license expire date is required when driver license number is provided. | |
60235 | Passport country is required when passport number is provided. | |
60236 | Passport issue date is required when passport number is provided. | |
60237 | Passport expire date is required when passport number is provided. | |
60250 | Only three addresses are allowed -- one for each valid type of Residence, Mailing, or Prior. | Do not provide more than 3 address objects, each one with a different value for addressType. |
60251 | Only three phones are allowed -- one for each valid type of Home, Mobile, or Office. | Do not provide more than 3 phone objects, each one with a different value for phoneType. |
66801 | Invalid Phone Type. Valid values are: 'Home', 'Mobile', 'Office'. | |
66802 | Phone Number is a required field. | |
66901 | Invalid Address Type. Valid values are: Mailing, Residence, Prior. | |
66902 | Address Line 1 is a required field. | |
66903 | City is a required field. | |
66904 | State is a required field. | |
66905 | Postal Code is a required field. | |
66906 | Country is a required field. | |
66907 | Residential Addresses can not contain a PO Box. | |
66908 | DPS Clients Only: Address lines must not exceed 76 characters. | |
69301 | Denial limit for this taxId has been exceeded. Registration may be attempted again on {0:d}. | NOTE: This check is performed only in the Production environment; it is not performed in the Sandbox environment. |
Example
Request
POST /customer/initiate Authorization: Basic PutBase64TokenHere
{ "firstName":"John", "middleName":"Allen", "lastName":"Smith", "birthDate":"1976-07-04T00:00:00.000+00:00", "gender":"M", "culture":"en-US", "tag":"MB3823823", "taxId":"123456789", "driversLicenseNumber":"543543443", "driversLicenseState":"IA", "driversLicenseExpireDate":"2014-07-04T00:00:00.000+00:00", "emailAddress":"john.a.smith@test.com", "isSubjectToBackupWithholding":false, "isOptedInToBankCommunication":true, "isDocumentsAccepted":true, "phones": [ { "phoneType":"Home", "number":"5155551212" }, { "phoneType":"Mobile", "number":"5155551414" } ], "addresses": [ { "addressType":"Mailing", "addressLine1":"PO Box 123", "city":"Anytown", "state":"IA", "postalCode":"50001", "country":"USA" }, { "addressType":"Residence", "addressLine1":"123 Main St", "city":"Anytown", "state":"IA", "postalCode":"50001", "country":"USA" } ] }
Response
200
{ "data" : { "customerId": 2342342, "messages": [], "questions": [ { "answers": [ "ELAINE RYAN", "JOE ANDERSON", "A VIRAY", "None of the above" ], "prompt": "From whom did you purchase the property at 222333 PEACHTREE PLACE?", "type": "purchased.property.from" }, { "answers": [ "STEVE BECK", "STEVE WASHINGTON", "LISA MCKITRICK", "None of the above" ], "prompt": "Which of the following people do you know?", "type": "person.known.fic" }, { "answers": [ "Single Family Residence", "Townhome", "Condominium", "None of the above" ], "prompt": "What type of residence is 222333 PEACHTREE PLACE?", "type": "residence.type" }, { "answers": [ "FALL RIVER", "UMATILLA", "FULTON", "None of the above" ], "prompt": "In which county have you lived?", "type": "current.county.b" } ], "verificationId": "1048354039", "verificationStatus": "success" }, "errors":[], "status":200 }
list
Lists all customers for the program associated with the login creditials in the Authorization header.
GET /customer/list/?pageNumber={0}&pageSize={200}
Request Parameters
pageNumber |
Optional (supplied via query string) | Which page of the customer list results to return. Default is 0 |
pageSize |
Optional (supplied via query string) | Size of one page of the customers to return. Default is 200. Maximum is 200. |
Response Data
A list of customer Objects, without the "accounts", "externalAccounts", "addresses", or "phones" properties populated. |
The list is ordered by customer lastName , then firstName . |
All customers, regardless of any flags or status, will be returned. |
Note: Each customer object has an additional property, "customerCount". This is the total number of customers which match your criteria. This is intended to ease implementing the paging functionality for the UI developer. |
Error Codes
Code | Message (en-US) | Notes |
1-60000 | Any "Common Error Code" may occur. | See Common Error Codes |
Example
Request
GET /customer/list/?pageNumber=0&pageSize=200 Authorization: Basic PutBase64TokenHere
Response
200
{ "data": [ { "accessTypeCode" : "FULL", "accounts": [], "addresses": [], "birthDate": "1975-02-28T00:00:00.000+00:00", "createdDate": "2014-02-19T08:29:58.169-06:00", "culture": "en-US", "customerCount": 3, "customerId": 49, "customField1": "ABCD123", "emailAddress": "user@example.com", "externalAccounts": [], "firstName": "John", "gender": "M", "isActive": true, "isDocumentsAccepted": false, "isLocked": false, "isOptedInToBankCommunication": false, "isSubjectToBackupWithholding": false, "lastName": "Smith", "lockedDate": "9999-12-31T23:59:59.999+00:00", "phones": [], "status": "Verified" }, { "accessTypeCode" : "FULL", "accounts": [], "addresses": [], "birthDate": "1975-02-28T00:00:00.000+00:00", "createdDate": "2014-02-19T08:41:01.540-06:00", "culture": "en-US", "customerCount": 3, "customerId": 54, "customField1": "ABCD123", "driversLicenseNumber": "ABC123XYZ", "driversLicenseState": "GA", "emailAddress": "user@example.com", "externalAccounts": [], "firstName": "John", "gender": "M", "isActive": false, "isDocumentsAccepted": true, "isLocked": false, "isOptedInToBankCommunication": false, "isSubjectToBackupWithholding": false, "lastName": "Smith", "lockedDate": "9999-12-31T23:59:59.999+00:00", "phones": [], "status": "Denied" }, { "accessTypeCode" : "FULL", "accounts": [], "addresses": [], "birthDate": "1975-02-28T00:00:00.000+00:00", "createdDate": "2014-02-19T08:51:24.510-06:00", "culture": "en-US", "customerCount": 3, "customerId": 60, "customField1": "ABCD123", "driversLicenseState": "GA", "emailAddress": "user@example.com", "externalAccounts": [], "firstName": "John", "gender": "M", "isActive": false, "isDocumentsAccepted": true, "isLocked": false, "isOptedInToBankCommunication": false, "isSubjectToBackupWithholding": false, "lastName": "Smith", "lockedDate": "9999-12-31T23:59:59.999+00:00", "phones": [], "status": "Denied" } ], "errors": [], "status": 200 }
search
Retrieve customer information by the given parameter(s)
POST /customer/search/?pageNumber={0}&pageSize={200}
Request Parameters
pageNumber |
Optional (supplied via query string) | Which page of the customer search results to return. Default is 0 |
pageSize |
Optional (supplied via query string) | Size of one page of the customers to return. Default is 200. Maximum is 200. |
Request Body Parameters
lastName |
Optional (but at least one Optional parameter must be specified) | |
firstName |
Optional (but at least one Optional parameter must be specified) | |
tag |
Optional (but at least one Optional parameter must be specified) | |
taxId |
Optional (but at least one Optional parameter must be specified) | |
driversLicenseNumber |
Optional (but at least one Optional parameter must be specified) | |
passportNumber |
Optional (but at least one Optional parameter must be specified) | |
emailAddress |
Optional (but at least one Optional parameter must be specified) | |
birthDate |
Optional (but at least one Optional parameter must be specified) |
Note: This route requires a POST request despite the fact that it does not modify or create any data. This is to prevent sensitive data (such as taxId
) from possibly being stored in any HTTP logs.
The exception to this is the pageNumber and pageSize variables, which are still passed via the query string. This is for consistency with the other paginated routes.
Also, for performance reasons, this route does not fill the phones, addresses, accounts or externalAccounts properties of the customer object. Only /customer/get and /customer/getByTag do.
Response Data
A list of customer Objects, without the "accounts", "externalAccounts", "addresses", or "phones" properties populated. |
The list is ordered by customer lastName, then firstName. |
Note: Each customer object has an additional property, "customerCount". This is the total number of customers which match your criteria. This is intended to ease implementing the paging functionality for the UI developer. |
Error Codes
Code | Message (en-US) | Notes |
1-60000 | Any "Common Error Code" may occur. | See Common Error Codes |
60401 | At least one field must be specified when performing a search. |
Example
Request
POST /customer/search/?pageNumber=0&pageSize=200 Authorization: Basic PutBase64TokenHere { "firstName" : "John", "lastName": "Smith" }
Response
200
{ "data": [ { "accounts": [], "addresses": [], "birthDate": "1975-02-28T00:00:00.000+00:00", "createdDate": "2014-02-19T08:29:58.169-06:00", "culture": "en-US", "customerCount": 3, "customerId": 49, "emailAddress": "user@example.com", "externalAccounts": [], "firstName": "John", "gender": "M", "isActive": true, "isDocumentsAccepted": false, "isLocked": false, "isOptedInToBankCommunication": false, "isSubjectToBackupWithholding": false, "lastName": "Smith", "lockedDate": "9999-12-31T23:59:59.999+00:00", "phones": [], "status": "Verified" }, { "accounts": [], "addresses": [], "birthDate": "1975-02-28T00:00:00.000+00:00", "createdDate": "2014-02-19T08:41:01.540-06:00", "culture": "en-US", "customerCount": 3, "customerId": 54, "driversLicenseNumber": "ABC123XYZ", "driversLicenseState": "GA", "emailAddress": "user@example.com", "externalAccounts": [], "firstName": "John", "gender": "M", "isActive": false, "isDocumentsAccepted": true, "isLocked": false, "isOptedInToBankCommunication": false, "isSubjectToBackupWithholding": false, "lastName": "Smith", "lockedDate": "9999-12-31T23:59:59.999+00:00", "phones": [], "status": "Denied" }, { "accounts": [], "addresses": [], "birthDate": "1975-02-28T00:00:00.000+00:00", "createdDate": "2014-02-19T08:51:24.510-06:00", "culture": "en-US", "customerCount": 3, "customerId": 60, "driversLicenseState": "GA", "emailAddress": "user@example.com", "externalAccounts": [], "firstName": "John", "gender": "M", "isActive": false, "isDocumentsAccepted": true, "isLocked": false, "isOptedInToBankCommunication": false, "isSubjectToBackupWithholding": false, "lastName": "Smith", "lockedDate": "9999-12-31T23:59:59.999+00:00", "phones": [], "status": "Denied" } ], "errors": [], "status": 200 }
update
Update customer information
POST /customer/update
NOTE: As a fraud prevention mechanism, very few properties are updatable via the API if your program uses ID Verification.
* Denotes properties that are updatable only if your program's ID Verification level is None
If you need to update properties that are not detailed below, it must be done via the CorePro Admin Console.
Request Body Parameters
customerId |
Required | Customer ID (returned when customer was created) |
firstName * |
Optional | The customer's given name. |
middleName * |
Optional | The customer's middle name. |
lastName * |
Optional | The customer's surname. |
suffix * |
Optional | The customer's suffix. e.g. "Jr.", "III", "D.D.S." |
birthDate * |
Optional | The customer's date of birth. See date formatting at the top of this resource. |
taxId * |
Optional | The customer's Social Security Number sans formatting (no dashes, no spaces, etc) |
driversLicenseNumber * |
Optional | The customer's government-issued driver's license number |
driversLicenseState * |
Optional | The US state the customer's driver's license was issued in |
driversLicenseIssueDate * |
Optional | The date customer's driver's license was issued |
driversLicenseExpireDate * |
Optional | The date customer's driver's license expires |
passportNumber * |
Optional | The customer's passport number. |
passportCountry * |
Optional | The country the customer's passport was issued from. |
passportIssueDate * |
Optional | The date customer's passport was issued |
passportExpireDate * |
Optional | The date customer's passport expires |
emailAddress * |
Optional | The customer's email address. |
gender |
Optional | Valid values are:
|
culture |
Optional | Valid values vary by program. Examples are:
|
isSubjectToBackupWithholding |
Optional | Set to true if customer is subject to backup withholding when interest is paid. False otherwise. |
isOptedInToBankCommunication |
Optional | Set to true if the customer opts in to receive communications from the bank. False otherwise. |
tag |
Optional | A program-wide unique identifier (up to 50 characters in length) supplied by the client to represent exactly one customer in CorePro in production. *Sandbox does allow duplicate customer tags for testing* Typically represents a single user in your system. |
customField1 |
Optional | Any value up to 100 characters in length |
customField2 |
Optional | Any value up to 100 characters in length |
customField3 |
Optional | Any value up to 100 characters in length |
customField4 |
Optional | Any value up to 100 characters in length |
customField5 |
Optional | Any value up to 100 characters in length |
addresses * |
Optional | A list of 0 or more address Objects to update or add. Note only one of a given addressType is allowed, meaning if you pass Mailing as the type and one exists, it will be updated instead of a new one being added. |
phones |
Optional | A list of 0 or more phone Objects to update or add. Note only one of a given phoneType is allowed, meaning if you pass Office as the type and one exists, it will be updated instead of a new one being added. |
Response Data
No object is returned; the envelope's "data" property will be absent, but a status of 200 is returned upon success. |
Error Codes
Code | Message (en-US) | Notes |
1-60000 | Any "Common Error Code" may occur. | See Common Error Codes |
60301 | Birth Date is invalid. Please enter a valid date after 01/01/1900. | |
60302 | Gender is invalid. Valid values are: 'M', 'F', and 'U'. | |
60303 | Tag '{0}' is already associated with a different customer. | |
60250 | Only three addresses are allowed -- one for each valid type of Residence, Mailing, or Prior. | Do not provide more than 3 address objects, each one with a different value for addressType. |
60251 | Only three phones are allowed -- one for each valid type of Home, Mobile, or Office. | Do not provide more than 3 phone objects, each one with a different value for phoneType. |
60350 | Only three addresses are allowed -- one for each valid type of Residence, Mailing, or Prior. | |
60351 | Only three phones are allowed -- one for each valid type of Home, Mobile, or Office. | |
60450 | Updating any properties that are used during the ID Verification process is not allowed. These properties include firstName, middleName, lastName, birthDate, taxId, and Residence address information. | |
66801 | Invalid Phone Type. Valid values are: 'Home', 'Mobile', 'Office'. | |
66802 | Phone Number is a required field. | |
66901 | Invalid Address Type. Valid values are: Mailing, Residence, Prior. | |
66902 | Address Line 1 is a required field. | |
66903 | City is a required field. | |
66904 | State is a required field. | |
66905 | Postal Code is a required field. | |
66906 | Country is a required field. | |
66907 | Residential Addresses can not contain a PO Box. | |
66908 | DPS Clients Only: Address lines must not exceed 76 characters. |
Example
Request
POST /customer/update Authorization: Basic PutBase64TokenHere
{ "customerId":2342342, "isSubjectToBackupWithholding":true, "phones" : [ { "phoneType" : "Office", "number" : "555-867-5309" } ] }
Response
200
{ "errors":[], "status":200 }
verify
This route has been deprecated and should be used for troubleshooting purposes only. Please contact your Sales Representative or Relationship Manager for additional information.
Verify a customer. Functions properly only if your Program is configured with a Verification Type of Full
. Must supply answers to challenge questions, along with the verificationId returned from the previous call to /customer/initiate
.
- If a
verificationStatus
ofsuccess
is returned, the customer will have astatus
ofVerified
is fully activated and can perform actions immediately. -
If a
verificationStatus
ofmanual review
is returned, the customer will have astatus
ofManual Review
. The customer can not perform any actions until the following criteria are met:- The customer must provide documentation in the form of a driver's license and current utility bill to be reviewed by the banking partner.
- Documents can be uploaded programmatically via
/customerdocument/upload
or manually via the Admin Console. - The customer will not be reviewed by the banking partner until the documents have been uploaded.
- If a
verificationStatus
offailed
is returned, the customer will have astatus
ofDenied
and will be unable to perform any actions.
POST /customer/verify
Request Body Parameters
customerId |
Required | Returned from the /customer/initiate call |
verificationId |
Required | Returned from the /customer/initiate call |
answers |
Required | A list of 4 or more objects with 2 properties each:
|
Response Data
customerId |
||
verificationStatus |
Status of the identity verification. Value is success upon success. This customer will be in a Verified status upon success of this call. |
|
messages |
A list of one or more objects with 2 properties each:
|
Error Codes
Code | Message (en-US) | Notes | |
1-60000 | Any "Common Error Code" may occur. | See Common Error Codes | |
60104 | All Answers incorrect | ||
60107 | Customer status must be Initiated to verify answers. Current status: {0}. | ||
60108 | Username for IDology is missing. | Your program is configured incorrectly. Contact support@corepro.io | |
60109 | Password for IDology is missing. | Your program is configured incorrectly. Contact support@corepro.io | |
60110 | Url for IDology is missing. | Your program is configured incorrectly. Contact support@corepro.io | |
60113 | Not all Answers submitted. | Typically when wrong questionIds are sent. | |
60151 | Invalid answer or answer type submitted. |
Example
Request
POST /customer/verify Authorization: Basic PutBase64TokenHere
{ "customerId":2342342, "verificationId":"1048354039", "answers":[ { "questionType":"prior.residence.state.multiyear", "questionAnswer":"NEW YORK" }, { "questionType":"time.at.current.address", "questionAnswer":"Over 5 years" }, { "questionType":"city.of.residence", "questionAnswer":"ATLANTA" }, { "questionType":"current.county.b", "questionAnswer":"FULTON" } ] }
Response
200
{ "data" : { "customerId": 2342342, "messages": [ { "verificationId": "1048354039", "verificationMessage": "One Incorrect Answer" } ], "questions": [], "verificationStatus": "success" }, "errors":[], "status":200 }
Request
POST /customer/verify Authorization: Basic PutBase64TokenHere
{ "customerId":2342342, "verificationId":"1048354039", "answers":[ { "questionType":"prior.residence.state.multiyear", "questionAnswer":"None of the above" }, { "questionType":"time.at.current.address", "questionAnswer":"None of the above" }, { "questionType":"city.of.residence", "questionAnswer":"None of the above" }, { "questionType":"current.county.b", "questionAnswer":"None of the above" } ] }
Response
400
{ "errors": [ { "code": 60104, "message": "All Answers Incorrect" } ], "requestId": "d56417ad-0a56-41ba-bb14-bc0f7e580f87", "status": 400 }
generateToken
Retrieve customer token for the specified customerId
Note: This endpoint is only available during the transitional phase to back-fill tokens for existing customers.
GET /customer/generateToken/{customerId}
Request Parameters
customerId |
Required | The customerId for this customer. Int. |
Response Data
customerId |
The customerId for this customer. Int. |
|
customerToken |
The token for this customer. String up to 5000 characters. |
Error Codes
Code | Message (en-US) | Notes |
1-60000 | Any "Common Error Code" may occur. | See Common Error Codes |
Example
Request
GET /customer/generateToken/825575 Authorization: Basic PutBase64TokenHere
Response
200
{ "data": { "customerId": 825575, "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6IntcIkN1c3RvbWVySWRcIjo4MjU1NzUsXCJFeHBpcmF0aW9uRGF0ZVwiOlwiMjAzOC0wMS0wMVQwMDowMDowMFwiLFwiSXNzdWVkRGF0ZVwiOlwiMjAyMC0wOC0xN1QxNTo1OToxMi40MzQyMjQyLTA1OjAwXCJ9IiwibmJmIjoxNTk3Njk3OTUyLCJleHAiOjIxNDU5Mzg0MDAsImlhdCI6MTU5NzY5Nzk1MiwiaXNzIjoicGlsb3QtYXBpLmNvcmVwcm8uaW8iLCJhdWQiOiI5MjAzIn0.VLemxbbFw2bUhmjnHT7UGuWrvfLcxByo_vmabYae4Yk" }, "errors": [], "requestId": "8655764b-8c20-4d9c-8e48-612179c66293", "status": 200 }
answerList
List the customers current Customer Due Diligence responses
GET /customer/answerList/{customerId}
Request Parameters
customerId |
Required | Customer ID (returned when customer was created) |
Response Data
A list of question Objects |
Error Codes
Code | Message (en-US) | Notes |
1-60000 | Any "Common Error Code" may occur. | See Common Error Codes |
60001 | Customer id {0} is invalid. |
answerPost
Submit a customer's due diligence answers
POST /customer/answerPost
Request Body Parameters
customerId |
Required | Customer ID (returned when customer originally created) |
questions |
Required | A list of 1 or more question objects |
Response Data
customerId |
Customer ID associated with the answers. | |
questions |
A list of 1 or more question objects |
Error Codes
Code | Message (en-US) | Notes |
1-60000 | Any "Common Error Code" may occur. | See Common Error Codes |
60001 | Customer id {0} is invalid. | |
60002 | Customer id {0} is inactive. | An inactive customer cannot perform any actions in CorePro. Redirect the user to a page informing them of this. |
60003 | Customer id {0} is not in a verified status. | An unverified customer cannot perform any actions in CorePro (except call /customer/verify). Redirect the user to a page informing them of this. |
60004 | Customer id {0} is locked. | An locked customer cannot perform any actions in CorePro. Redirect the user to a page informing them of this. |
60005 | Customer id {0} is marked as deceased. | An deceased customer cannot perform any actions in CorePro. Redirect the user to a page informing them of this. |