Consumer Checks: Best Practices
A practical guide for designing effective person verification workflows using Baselayer's consumer check tools.
This guide covers how to select the right checks for your use case, optimize inputs for accuracy, handle edge cases, design efficient workflows, and operationalize person monitoring.
Make sure to review Consumer Checks: Basics before reading this guide.
1. Selecting the Right Checks
Not every workflow requires every check. Selecting the appropriate options for your Person Search reduces cost, speeds up results, and keeps your review queues focused on what matters.
Sanctions & Compliance (required for most regulated products)
Order.OfacandOrder.Pep— should be included for virtually all onboarding and underwriting workflows. These are typically non-negotiable for compliance.
Lending & Credit
Order.Liens— personal liens affect collateral position and indicate financial stressOrder.Litigations— litigation history, directly impacts creditworthinessOrder.Bankruptcy— personal bankruptcy records, clear sign for credit riskOrder.TinMatching— confirms the applicant's identity through IRS records
Military-Related
Order.Scra— required if your product is subject to SCRA protections (interest rate caps, foreclosure restrictions). Relevant for lending, servicing, and collections. Requires full 9-digit SSN — if only last-4 SSN is provided, this check will not run.Order.Mla— required if your product falls under MLA coverage (payday loans, auto title loans, certain credit cards). Check before finalizing loan terms. Requires full 9-digit SSN anddate_of_birth— if either is missing, this check will not run.
Common Configurations by Use Case
Payment processor or marketplace vendor onboarding: Order.Ofac, Order.Pep
Sanctions screening for individuals associated with merchant applications. Typically sufficient when combined with a Business Search.
Business lending (applicant & guarantors): Order.Ofac, Order.Pep, Order.Liens, Order.Litigations, Order.Bankruptcy, Order.TinMatching
Full coverage for credit risk and identity verification. Run on the applicant, each UBO, and each guarantor.
Bank account opening: Order.Ofac, Order.Pep, Order.TinMatching
Identity verification and sanctions compliance. Litigations and liens are typically less relevant when no credit exposure exists.
Servicing & collections: Order.Scra, Order.Mla
Check military status before taking enforcement actions, adjusting rates, or pursuing collections.
2. Optimizing Inputs
The quality and completeness of your inputs directly affects match confidence and result accuracy.
SSN: Full vs. Last Four
Baselayer accepts either a full 9-digit SSN or the last 4 digits. Both return the same quality of results — the difference is in matching confidence. Full SSN provides a stronger identity match, which reduces the likelihood of false positives in docket and lien results.
Full SSN is required for Order.Scra or Order.Mla options.
Our recommendation: Use the full SSN whenever your application flow collects it. Fall back to last-4 only when the full SSN is not available (e.g., early-stage pre-screening before a full application).
Name Accuracy
Provide the legal name as it appears on official documents. Common issues that reduce match quality:
- Nicknames instead of legal first names (e.g., "Bill" instead of "William")
- Missing middle names or initials — include
middle_namewhen available - Incorrect suffixes — omit rather than guess if uncertain
Address and Lien Scoping
If you include address in your Person Search request, Baselayer uses the state from that address to scope lien searches (when Order.Liens is selected). This is an important operational decision:
- Providing an address → lien search is scoped to that state, producing more relevant results with less noise
- Omitting the address → lien search may cover a broader scope, potentially returning more results but with lower relevance
Our recommendation: Always include the individual's address when requesting lien searches. This mirrors the domestic vs. all-state scope decision in Business Search lien configuration.
Submit Everything You Have
Beyond the required fields, Baselayer accepts: date_of_birth, gender, marital_status, phone_number, email, address, suffix, and title. These optional fields do not change the quality of the core checks, but they build richer person profiles within Baselayer. Richer profiles enable stronger matching, more complete records, and better monitoring outcomes over time.
Our recommendation: Pass every field your application collects. The marginal effort is minimal, and the long-term value in profile completeness is significant.
3. Designing Your Verification Workflow
Parallel Submission with Business Search
The most efficient onboarding pattern is to submit both Business Search and Person Search requests at the same time. As soon as the application data is available:
- Submit
POST /searchesfor the business entity - Submit
POST /person_searchesfor each individual in the application
Both run concurrently. When each completes, evaluate results independently and combine them into a single onboarding decision.
# Pseudocode: parallel submission during onboarding
# Business verification
business_search = POST /searches {
"name": application.business_name,
"address": application.business_address,
"tin": application.ein,
"options": ["Order.EnhancedSearch"]
}
# Person verification for each individual
FOR EACH person IN [applicant, ubos, guarantors]:
person_search = POST /person_searches {
"first_name": person.first_name,
"last_name": person.last_name,
"ssn": person.ssn,
"middle_name": person.middle_name,
"date_of_birth": person.date_of_birth,
"address": person.address,
"phone_number": person.phone_number,
"email": person.email,
"options": ["Order.Ofac", "Order.Pep", "Order.Liens",
"Order.Litigations", "Order.TinMatching"]
}Tip: Store both the
business_search_idand allperson_search_idvalues against the application record. You will use these to add items to Portfolio Monitoring after approval.
When to Use Standalone Endpoints Instead
Standalone endpoints are best suited for specific stages in your workflow:
Pre-screening: Run POST /ofac_searches before collecting full application data to catch obvious sanctions hits early, avoiding unnecessary data collection from blocked individuals. Both OFAC and PEP standalone endpoints accept a similarity_threshold parameter (0.0 to 1.0, default 0.9) — consider lowering it slightly (e.g., 0.8) during pre-screening to cast a wider net, then rely on the Person Search for definitive results.
Sole proprietor TIN verification: If you already know the applicant is a sole proprietor, use POST /tin_verifications for a fast, cost-efficient IRS check without the overhead of a full Person Search. See the Sole Proprietors Guide for more detail.
Servicing checks: Use POST /scra_searches or POST /mla_searches independently when evaluating military status for loan servicing decisions. These are typically run at a different stage than onboarding. Both require full 9-digit SSN, and MLA additionally requires birth_date.
4. Evaluating Results
Watchlist Hits (OFAC & PEP)
Any positive watchlist hit should be treated as a high-priority review item. However, not every hit is a true match — false positives occur, especially with common names.
Recommended evaluation logic:
# Evaluate watchlist hits from person search response
person = response.get("person", {})
watchlist_hits = person.get("watchlist_hits", [])
FOR EACH hit IN watchlist_hits:
IF hit.list == "OFAC":
flag = "RED"
reason = "OFAC match detected"
IF hit.list == "PEP":
IF hit.match_score >= 0.85:
flag = "RED"
reason = "High-confidence PEP match"
ELSE:
flag = "YELLOW"
reason = "Potential PEP match — manual review required"
IF no watchlist_hits:
flag = "PASS"Note: OFAC hits should always trigger review or rejection per your compliance policy. PEP status is not inherently disqualifying but requires enhanced due diligence.
Dockets (Litigations & Bankruptcy)
Use the risk_level and match_level fields to triage docket results:
# Evaluate docket results
dockets = person.get("dockets", [])
medium_risk_count = 0
FOR EACH docket IN dockets:
IF docket.risk_level == "high" AND docket.match_level == "EXACT":
flag = "RED"
reason = "High-risk litigation or bankruptcy with exact match"
IF docket.risk_level == "medium":
medium_risk_count += 1
IF medium_risk_count > 2:
flag = "YELLOW"
reason = "Multiple medium-risk litigation cases"Note: This logic provides basic docket risk assessment. Tailor thresholds to your product's risk appetite — lending products typically require stricter scrutiny than payment processing.
Liens
Active personal liens indicate financial stress and may affect your collateral position:
# Evaluate lien results
liens = person.get("liens", [])
active_liens = [l for l in liens if l.status == "ACTIVE"]
IF any active_liens with type == "TAX_LIEN":
flag = "YELLOW"
reason = "Active personal tax lien"
IF len(active_liens) > 3:
flag = "RED"
reason = "Multiple active personal liens"TIN Matching
TIN verification confirms the individual's identity through IRS records. The response includes tin_matched (boolean) and tin_match_type (SSN, EIN, UNKNOWN, or null), mirroring the same TIN verification behavior available in the Business Search. For Person Searches, tin_match_type will typically return SSN; a value of EIN may appear when the individual operates as a sole proprietor using an EIN.
# TIN result is at the search level (not inside person object)
tin_matched = response.get("tin_matched")
tin_match_type = response.get("tin_match_type")
IF tin_matched is True:
# Identity confirmed with IRS
PASS
IF tin_matched is False:
flag = "RED"
reason = "SSN does not match name per IRS records"
IF tin_matched is None:
# IRS may be temporarily unavailable
# Check warnings for "IRS Validation is unavailable."
# Baselayer will auto-retry; listen for PersonSearch.completed webhook
flag = "PENDING"
reason = "IRS validation pending — outage detected"5. Monitoring Individuals
Who to Monitor
Not every individual verified at onboarding needs ongoing monitoring. Focus monitoring resources on individuals where a change in their status would directly impact your risk exposure:
Always monitor:
- Guarantors on active loans — new liens or litigations affect your recovery position
- UBOs of high-risk businesses — sanctions or PEP changes require immediate action
- Sole proprietors — where the individual and business risk are inseparable
Monitor selectively:
- Applicants on standard-risk products — monthly monitoring is typically sufficient
- Authorized signers — only if they have significant decision-making authority
Skip monitoring for:
- Individuals on closed or fully repaid accounts
- Low-risk, passive investors with no operational role
Recommended Monitoring Configuration
For individuals added to Portfolio Monitoring, configure your monitoring policy based on risk:
High-risk individuals (e.g., guarantors on large exposures, flagged UBOs):
- Monitoring frequency: weekly
- Monitor for: OFAC, PEP, liens, litigations
- Notification frequency: daily for sanctions, weekly for liens/litigations
Standard-risk individuals (e.g., primary applicants on approved accounts):
- Monitoring frequency: monthly
- Monitor for: OFAC, PEP, litigations
- Notification frequency: weekly
Compliance-only (e.g., marketplace vendor principals):
- Monitoring frequency: monthly
- Monitor for: OFAC, PEP
- Notification frequency: monthly
Organizing Individuals in Portfolio Groups
Use portfolio groups to separate individuals by role, risk tier, or product:
- Guarantors — weekly monitoring, full attribute coverage
- UBOs — monthly monitoring, sanctions-focused
- Sole Proprietors — monthly monitoring, same configuration as associated business
This structure ensures that monitoring resources are allocated proportionally to risk exposure.
For comprehensive guidance on portfolio groups, policies, and notifications, see Portfolio Monitoring: Best Practices.
6. IRS Outage Handling
TIN verification for individuals follows the same IRS outage pattern as business TIN verification. When the IRS service is temporarily unavailable:
tin_matchedwill returnnullwarningswill include"IRS Validation is unavailable."- Baselayer will automatically retry at increasing intervals
- Once the IRS service is restored, a
PersonSearch.completedwebhook will be re-emitted with the final TIN result
Recommended approach during outages:
- Process the Person Search normally for all non-TIN checks
- Flag the TIN result as pending in your system
- Listen for the updated webhook to finalize the TIN decision
- If your policy requires TIN confirmation before approval, issue a conditional approval or hold the decision until the result arrives
For more detail on IRS outage handling, see the TIN Check Retry Guide.
7. Implementation Checklist
Setup
- API key configured for person search endpoints
- Webhook endpoint configured for
PersonSearch.submitted,PersonSearch.completed,PersonSearch.failed - Internal mapping between application records and person search IDs
Onboarding Integration
- Person Searches submitted in parallel with Business Searches during onboarding
- Options configured per product and risk policy
- Watchlist hit evaluation logic implemented
- Docket and lien evaluation logic implemented (if applicable)
- TIN matching evaluation logic implemented (if applicable)
- IRS outage handling implemented
Portfolio Monitoring
- Approved individuals added to portfolio via
POST /portfolio/itemswithperson_search_id - Portfolio groups created for individuals (e.g., Guarantors, UBOs, Sole Props)
- Monitoring policies configured per group
- Notification subscriptions configured for individual-level changes
For questions about implementation, contact your Baselayer account representative.
Updated 13 days ago
