Before You Start
Practifi customers (The Advisor firm) must first contact their Schwab Account Representative of their intention to use their integration with Practifi. This will start the process off within Schwab to allow API access by Practifi to the customer's client data in Schwab. In particular, the advisor firm will need to ask its Firm Administrator at Schwab enable Digital Account Opening on the Schwab Advisor Center in order for the Advisor's users to use the integration.
Customers should also advise Practifi if they have been set up with Schwab to always require the use of a One Time Password (OTP), in addition to UserID and Password, to access Schwab systems. This s an important item in the integration configuration.
Integration Summary
The Schwab Adviser Enrollment and Digital Account Opening (DAO) enhancement to Practifi allows customers who use Schwab for Custodial services for their clients to initiate Schwab account opening processes for their client individuals directly from Practifi rather than from within Schwab.
Practifi customers can now
- Transfer Contacts from Practifi Client records to Schwab, without rekeying
- Initiate the Digital Account Opening (DAO) wizard from within Practifi
- Monitor Alerts received from Schwab, particularly those relating to Account Opening
Advisors will still need to complete details for the account opening (missing details, updating details) within the DAO wizard, and await the receipt of e-signed paperwork from the end-client before the account is actually opened.
Contact details updated in the Schwab Advisor Center are not reflected back in Practifi - the integration offered is only one way, from Practifi to Schwab. Further, once the Contact has been passed into Schwab, subsequent updates in Practifi are not updated in Schwab.
Data Mapping
The following table details the mapping of Practifi Contact and Client (Account) fields to those required by Schwab.
Practifi UI field |
From |
Direction (Daily) |
Schwab Contact field |
Rule |
|
Contact |
π |
Email Address |
Not from any of the other email fields |
First Name |
Contact |
π |
First Name |
|
Middle Names |
Contact |
π |
Middle Name |
|
Last Name |
Contact |
π |
Last Name |
|
Suffix |
Contact |
π |
Suffix |
|
Tax Number |
Contact |
π |
SSN |
|
Location Shipping |
Account |
π |
Address Line 1 |
If supplied, passed in as an Address in Schwab |
Location Shipping City |
Account |
π |
City |
|
Location Shipping PostalCode |
Account |
π |
ZIP |
|
Location Shipping State |
Account |
π |
State |
|
Location Shipping Country |
Account |
π |
Country |
|
|
Account |
π |
International |
If Country=βUSβ then T, else F |
Postal Billing Street |
Account |
π |
Address Line 1 |
If supplied, passed in as an Address in Schwab |
Postal Billing City |
Account |
π |
City |
|
Postal Billing PostalCode |
Account |
π |
ZIP |
|
Postal Billing State |
Account |
π |
State |
|
Postal Billing Country |
Account |
π |
Country |
|
|
Account |
π |
International |
If Country=βUSβ then T, else F |
Job Title |
Contact |
π |
Job Title |
|
Employer Name |
Contact |
π |
Employer |
|
Home Phone, Work Phone, Mobile Phone |
Contact |
π |
Line |
All Phone Number Types are transferred |
|
|
|
Area Code |
Extracted from Line |
|
|
|
Country Code |
Extracted from Line |
|
|
|
International |
If CountryCode=β+1β then F, else T |
DOB |
Contact |
π |
DOB |
|
Employer Name |
Contact |
π |
Employer |
|
|
Contact |
π |
Is Director |
If EmploymentStatus = DIRECTOR then T, else F |
|
Contact |
π |
Employed by Broker or Exchange |
Not set as not recorded by Practifi |
|
Contact |
π |
Business Owner or Self Employed |
If EmploymentStatus = BUSINESSOWNER or SELF-EMPLOYED then T, else F |
Occupation |
Contact |
π |
Occupation |
|
Employment Status |
Contact |
π |
Employed |
Mapped in Data Feed Mapping |
Country |
Contact |
π |
Country of Residence |
Presently only "US" and "AU" listed. Others can be added under Data Feed Mapping. |
Country of Citizenship |
Contact |
π |
Is US Citizen |
If Country of Citizenship=βUSβ then T, else F |
Country of Residence |
Contact |
π |
Is US Resident |
If Country of Residence=βUSβ then T, else F |
Type |
Referenced Documents |
π |
ID Type |
βPassportβ and βDrivers Licenceβ are supported. Others can be added under Data Mapping. |
IDNumber |
Referenced Documents |
π |
Document Number |
|
Issue Date |
Referenced Documents |
π |
Issue Date |
|
Expiry Date |
Referenced Documents |
π |
Expiry Date |
|
Birth Place |
Contact |
π |
Country of Birth |
|
Issuer |
Referenced Documents |
π |
Passport Issued Country |
|
Type |
Referenced Documents |
π |
Drivers Licence Issued State |
Type= DRIVERSLICENCE and Issuer=State |
Govt Issued ID |
Referenced Documents |
π |
Govt ID Issued State |
Type= GOVTISSUEDID and Issuer=State |
Enabling the Integration
Enabling the Schwab integration with Practifi requires setting up the following configurations:
Configuration |
Where |
Upload and Import a Certificate |
Salesforce Settings |
Remote Site |
Salesforce Settings |
Enable Schwab Integration |
Salesforce Settings |
Schedule Scheduled Jobs |
Salesforce Settings |
Triggers |
Salesforce Settings |
Activating New Panels |
Lightning Screen Builder |
Upload Authentication Certificate to Keystore
Download the Certificates from Bitbucket
This is a step which needs to be performed by Practifi Customer Support, to extract and upload the certificate to the customer's system.
The Keystore certificate file for production access to Schwab has already been prepared, and is held in Bitbucket. One JKS file contains the two certificates need to be downloaded to local disk for uploading into Keystore. The certificates are:
- Production Enrollment Certificate
- Production SSL Certificate
Download the single JKS file from Bitbucket with the following URL:
The user will need Bitbucket permission to download, else a message like the following will appear:
If the permission is not set call one of the Bitbucket admins to create a new user and assign the permission. Save it to the local disk.
Import from a Keystore
Go to Salesforce Setup under the userβs avatar/picture icon in the top right
In Salesforce Setup, (top-right gear icon) go to the Quick Find/Search bar (on the left side), search for and click on Certificate and Key Management
Click on Import from Keystore
In Salesforce Setup, go to the Quick Find/Search bar, search for and click on Certificate and Key Management
Click on Import from Keystore
Select the prod.jks file from where it was downloaded earlier. Click Save.
The certificates uploaded in the JKS file will have the following names:
- sii_practifi_enrollment_prod
- sii_practifi_ssl_prod
Viewing the list of certificates will show the following:
Create Remote Site
In Salesforce Setup, go to the Quick Find/Search bar, search for and click on Remote Site
Click on New Remote Site
Only one remote site needs to be configured, as this supplies the URL Root for the API and SSL calls.
Supply the following:
- Remote Site Name: suggest schwab_prod
- Remote Site URL: https://restgateway.schwab.com/
Enable Schwab Integration
In Practifi, click your avatar in the top-right corner to view the Settings menu and select Salesforce Setup.
In Salesforce Setup, go to the Quick Find/Search bar, search for and click on Custom Settings.
Click Manage next to Schwab Integration Settings.
If this is a new install the the Schwab Integration Settings list will be empty. At this point create a new Organization Level group of settings by clicking on the first New button on the panel. Else continue to the next screen (the system will already have had Organizational Level settings for Schwab).
Complete the details per the panel below.
Supply the following:
- Enabled: Ticked
- Enrollment Endpoint: https://hitweb.schwab.com/SII/Enrollment/TnCEnrollment.aspx
- Enrollment Certificate: sii_practifi_enrollment_prod
- API Endpoint: https://restgateway.schwab.com/inbound/api
- SSO Endpoint: https://si2.schwabinstitutional.com/SI2/SecAdmin/LogonSSO.aspx
- SSL Certificate: sii_practifi_ssl_prod
- Client Channel: NE
- Verbose Logging: Ticked
- Provider Channel: I4 (as in capital letter "i" for "ink" 4)
- API Version: 1.0
- Is Production: Ticked
- Alert Last Days: 90
- Account Mask Pattern: doNotMask
- Max User: 5
- Include Archived Alerts: Ticked
- Alert Types: <blank>
- Auto Map Account: Ticked
- Map Account Batch Size: <blank>
- Superuser: <blank>
- Throw Exception: <blank>
- Ready for Review Alert Subject: Digital Envelope Ready for Review
- Ready for Review Alert Type: DAO
- New Account Open Subject: New Digital Account: OPENED
- New Account Open Alert Type: NEW-ACCT
- Send Notifications: Ticked
- Enable OTP: Ticked, if client uses One Time Password (OTP) for logons to Schwab. Schwab will advise if this has been configured as such for the client. Example of password generator:
Set Up Scheduled Jobs
In Salesforce, go to the userβs dropdown and select Developer Console.
Under Debug, open an Open Execute Anonymous Window
Paste in following code into the window, and Execute.
cloupra.SchwabIntegrationInvocable schwab = new cloupra.SchwabIntegrationInvocable('syncalertforall');
String hourly = '0 0 * * * ?';
String jobID = System.schedule('Schwab Sync Alert', hourly, schwab);
Enable Practifi Triggers
Activate the Schwab Alerts trigger setting, which monitors for new Alerts from Schwab and adds rows to the list of Schwab Alerts.
In Salesforce Setup, go to the Quick Find/Search bar, search for and click on Custom Settings.
Click Manage next to Practifi Trigger Settings.
Scroll to the end of the list of settings, and tick the trigger for Schwab Alert, and Save.
Activating New Panels for Schwab
The detailed steps for setting up the UI panels for the Schwab integration will be completed by the Practifi Customer Support team. The steps are essentially:
- Uploading a JSON file, which has the screen updates required to install the Push Schwab Contacts button on the Client record layout. This JSON is held in bitbucket.
- Edit the Client Household layout to add the Schwab Push Contact button to the layout
- Edit the Schwab Alerts page layout
- Create a new Permission Set, titled Practifi - Schwab, and the API Name of Practifi_Schwab
- Under the Practifi - Schwab permission set apply all permissions to
- Contacts
- Integrations Logs
- Schwab Accounts
- Schwab Alerts
- Users (Assign permissions for the lines Schwab_OTP__c & Schwab_SOVG_Id__c)
Comments
Please sign in to leave a comment.